Мне нужно создать простой логин с угловыми и использовать сессии.для этого у меня есть два php-файла и угловые файлы.
Это PHP-файл 1
session_start();
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
$postdata = file_get_contents("php://input");
if(isset($postdata) && !empty($postdata)) {
$request = json_decode($postdata);
$username=trim($request->username);
$password=trim($request->password);
if($username == 'admin' && $password == 'admin') {
$_SESSION['user'] = 'admin';
?>
{
"success": true,
"secret": "This is the secret no one knows but the admin"
}
<?php
} else {
?>
{
"success": false,
"message": "Invalid credentials"
}
<?php
}
} else {
//var_dump($_POST)
?>
{
"success": false,
"message": "Only POST access accepted"
}
<?php
}
?>
Это PHP-файл 2
<?php
session_start();
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Content-Type');
$user = $_SESSION['user'];
echo '{
"message": "'.$user.'",
"success": true
}';
?>
В одном из моихКомпонент ngOnInit (), я вызвал оба этих API (я знаю, что первый должен быть вызван кнопкой входа в систему, но для целей тестирования я использовал оба под одним).Я даже использовал функцию settimeout для отсрочки второго вызова
ngOnInit() {
this.auth.getUserDetails('admin','admin')
.subscribe(
data => {
console.log('success',data);
if(data.success){
}
else{
window.alert("invalid");
}
},
error=> {
console.log('failed',error);
}
)
var _this=this;
setTimeout(function(){
_this.user.getSomeData().subscribe(data=>{
console.log(data);
})
}, 3000);
}
Но сеанс пользователя все еще недоступен. Мне нужна помощь, чтобы понять причину.Пожалуйста, проверьте изображение.Для первого поста запрос является успешным, но второй запрос на получение не прошел.Он говорит, что переменная сеанса, которую я использовал (пользователь), недоступна.
Но эта переменная была установлена предыдущим запросом.
Это ошибка, которую я получаю
Спасибо