Мне нужно создать простой логин с угловыми и использовать сессии.
для этого у меня есть два 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);
}
Но все же пользовательский сеанс недоступен .. Мне нужна помощь, чтобы понять причину.
Пожалуйста, проверьте изображение.
Для первого поста запрос является успешным, но второй запрос на получение не прошел.
Он говорит, что переменная сеанса, которую я использовал (пользователь), недоступна.
Но эта переменная была установлена предыдущим запросом.
Спасибо
Задача ещё не решена.
Других решений пока нет …