在我的项目中,我使用的是密钥披肩,我想实现一个登录保护,以防止通过身份验证的用户导航到公共页面,如登录页和注册页面。我试着像下面这样实现它,但它只是重定向到公共区域。
export class LoginGuard extends KeycloakAuthGuard {
constructor(protected override readonly router: Router, protected readonly keycloak: KeycloakService) {
super(router, keycloak);
}
async isAccessAllowed(): Promise<boolean | UrlTree> {
const isLoggedIn = await this.keycloak.isLoggedIn();
if(isLoggedIn){
this.router.navigate(['/']);
return false;
}
return true;
}
}即使用户经过身份验证,isLoggedIn也始终是假的。
发布于 2022-11-29 14:46:49
将代码放在try/catch块中
async isAccessAllowed(): Promise<boolean|UrlTree> {
try {
const isLoggedIn = await this.keycloak.isLoggedIn();
if(!isLoggedIn) return;
this.router.navigate(['/']);
return false;
} catch(error) {
}
}https://stackoverflow.com/questions/74614650
复制相似问题