Я создал сервис аутентификации, компонент входа в систему, компонент SuperAdmin / header.
Используя службу аутентификации, я сопоставляю введенные пользователем значения с базой данных Mysql. и извлечение данных пользователя ниже в $ _SESSIONS.
например: $ _SESSION ['UserId'] = $ UserId;
Данные кодирования Json:
{result: "success", UserId: "U-001", UserName: "Super Admin", UserEmail: "admin@dw.com", UserRoleId: 1, UserRole: Super Admin}
Построение вышеуказанных данных в localStorage.setItem
Столкнувшись с проблемами:
1). Как поддерживать сеансы в каждом компоненте и как передавать сеансы в фоновых файлах php при выполнении операций crud
Если не получается сессия, как перенаправить с ошибками.
2). Не удается получить данные сеанса во время выхода из системы.
echo $ _SESSION ['UserId']; // здесь не получается сессия
3). после входа я перенаправляю на страницу компонента SuperAdmin / header. здесь проблема в том, что если я нажму кнопку «Назад», она снова перенаправит на страницу входа
как решить вышеуказанные проблемы. Пожалуйста, помогите мне. Я новичок в angular7 и стадии обучения.
Заранее спасибо.
auth.service.ts
serverUrl = environment.baseUrl;
//Get each User data
userlogin(loginUser: Loginuser): Observable<Loginuser>{
return this.http.post<Loginuser>(this.serverUrl + 'Login/loginprocess.php', loginUser);
}
logout(){
return this.http.get<logoutStatus>(this.serverUrl + 'Login/logout.php',)
}
login.component.ts
constructor(private router:Router,private fb: FormBuilder, private authservice: AuthService)
{
this.LoginForm = fb.group({
emailid: ['', Validators.compose([Validators.required])],
password: ['', Validators.compose([Validators.required, Validators.minLength(8), Validators.maxLength(8)])],
})
}
ngOnInit() {
}
LogInUser(){
let login = this.LoginForm.value;
this.checklogin(login);
}
checklogin(loginUser: Loginuser)
{
this.authservice.userlogin(loginUser).subscribe(
data =>{
if(data["result"]=="success"){
this.showSuccessAlert = true;
this.SuccessAlert = data["result"];
this.LoginForm.reset();
localStorage.setItem("UserData", JSON.stringify(data));
// localStorage.setItem("UserId", JSON.stringify(data["UserId"]));
// localStorage.setItem("UserName", JSON.stringify(data["UserName"]));
this.router.navigate(['SuperAdmin']);
}
else
{
this.showWarningAlert = true;
this.WarningAlert = data["result"];
}
}
)
}
logout.ts
ngOnInit(){
this.authservice.logout().subscribe(data => {
if(data.success)
{
this.router.navigate(['']);
}
else
{
window.alert('some problem');
}
})
}
logout.php
<?php
session_start();
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: authorization, Content-Type");
if(isset($_SESSION['UserId']))
{
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: authorization, Content-Type");
echo $_SESSION['UserId']; //not getting session here
// i need to store logout time here for partilcular user
}
?>
Мне нужно проверять сессию для каждой операции crud. Если сессия существует, ОК. иначе покажите ошибки.