问题描述
我正在尝试对网站实施FusionAuth身份验证,但Chrome和Edge遇到了重大问题,但Firefox却没有。现在,根据响应的正文,它会自动将您重定向到FusionAuth登录页面,或将您定向到导航栏中包含的网站主页。
<ng-container *ngIf="this.loggedIn == false; then thenTemplate; else elseTemplate"></ng-container>
<ng-template #thenTemplate>
<Meta http-equiv="refresh" content="0; URL=login_url">
</ng-template>
<ng-template #elseTemplate>
<app-navbar></app-navbar>
</ng-template>
这是收集用户信息的服务。在完成检查的组件中,它检查信息是否包含电子邮件地址,因为所有用户都需要电子邮件。如果有电子邮件,它将“ loggedIn”属性设置为true,否则为false。
export class UserService {
private SERVER_URL = "serverURL";
constructor(private httpClient: HttpClient) { }
handleError(error: HttpErrorResponse) {
let errorMessage = 'UnkNown error!';
if (error.error instanceof ErrorEvent) {
errorMessage = `Error: ${error.error.message}`;
} else {
errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
}
window.alert(errorMessage);
return throwError(errorMessage);
}
public get() {
return this.httpClient.get(this.SERVER_URL,{withCredentials: true}).pipe(catchError(this.handleError));
}
}
最后,这是支票。我相信问题是在这里发生的:
user: any;
loggedIn: boolean;
constructor(private userService: UserService){}
ngOnInit(): void{
this.userService.get().subscribe((data: any) => {
if(data.email != null){
this.loggedIn = true;
}
else{
this.loggedIn = false;
}
});
}
这时,Firefox能够以某种方式等待异步请求,但是Chrome正在通过无限的登录重定向发送用户。
基本上我的问题是,如何强制Angular等待处理服务请求并继续执行,直到收到所有信息为止?我试图将回应变成承诺并以这种方式返回,但没有运气。
谢谢大家!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)