gpt4 book ai didi

javascript - Keycloak 检查-sso 创建

转载 作者:行者123 更新时间:2023-12-02 22:19:20 27 4
gpt4 key购买 nike

我正在使用 Angular 8.0.3、keycloak 8.0.0 和 keycloak-service 7.0.1

我正在尝试创建一些公共(public)页面,因此我使用“check-sso”。如果我理解正确的话,如果用户未登录,浏览器将被重定向回应用程序并保持未经身份验证的状态。

我的应用程序有这个路由:

const routes: Routes = [
{
path: '',
loadChildren: () => import('src/app/pages/pages.module').then(m => m.PagesModule),
canLoad: [IsAuthenticateGuard]
},
{
path: 'login',
component: LoginComponent,
canLoad: [IsNotAuthenticateGuard]
},
{
path: '**',
redirectTo: ''
}
]

守卫:

export class IsAuthenticateGuard implements CanLoad {

constructor(private keycloakService: KeycloakService, private router: Router) {}

canLoad(
route: Route,
segments: UrlSegment[]
): Observable<boolean>|Promise<boolean>|boolean {
return this.keycloakService.isLoggedIn().then(isLogged => {
if (!isLogged) {
this.router.navigateByUrl('/login');
}
return isLogged;
});
}
}
export class IsNotAuthenticateGuard implements CanActivate {

constructor(private keycloakService: KeycloakService,
private router: Router) {}

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):
Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
return this.keycloakService.isLoggedIn().then(isLogged => {
if (isLogged) {
this.router.navigateByUrl('/home');
}
return !isLogged;
});
}

}

我的 keycloak 有这个初始化配置:

keycloakService.init({
config: keycloakConfig,
initOptions: {
onLoad: 'check-sso',
checkLoginIframe: false
},
bearerExcludedUrls: ['/login'] // (I tried also '.*')
})

但我被重定向到:
http://localhost:4200/#error=login_required&state=0b36094c-92ac-4703-a800-77f27e4d206d
没有任何附加...

我读了这篇文章,但没有找到解决方案:

https://github.com/mauriciovigolo/keycloak-angular https://www.keycloak.org/docs/latest/securing_apps/index.html#_javascript_adapter

最佳答案

您正在使用 onLoad: 'check-sso',它仅在用户登录时对客户端进行身份验证。

您应该改用onLoad: 'login-required'

关于javascript - Keycloak 检查-sso 创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59289320/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com