Angular从kerberos身份验证获取数据

ochs.tobi

我有一个后端的角度应用程序。在启动应用程序之前,使用浏览器使用Kerberos管理身份验证。该响应包含一个JWT,其中包含角色。

我的方法是在应用开始获取用户凭据时对服务器进行额外的HTTP调用。这是通过APP_INITIALIZERin实现的app.module.ts,因此在应用启动时我已经具有凭据。

providers: [
    ...,
    {
      provide: APP_INITIALIZER,
      useFactory: Utilitys.authServiceFactory,
      deps: [AuthenticationService],
      multi: true   
    }]

一切正常。但是我的问题是:我是否必须打个电话,或者是否有办法从浏览器的请求中获得响应?

如果是:怎么可能?

如果否:是否APP_INITIALIZER建议仅获取一次数据的方法?还是应该使用route guardHTTP调用来保护所有路由

用户名

要仅在应用程序启动后才获取数据,您也可以使用进行操作Route Guards

您可以定义一个不受组件保护的路由,该路由受路由防护程序保护,如下所示:

// Route Guard
canActivate(): boolean | Promise<boolean> | Observable<boolean> {
    if (this.yourService.isAuthenticated()) {
      return true;
    }
    return this.loginService.login();
}

// Routes
{
    path: '',
    canActivate: [AuthGuard],
    children: [
      { path: 'comp1', component: Comp1 },
      { path: 'comp2', component: Comp2 },
      ...
    ]
}

这样,每条路由都受到您的警卫的保护,您可以检查您的用户是否已登录/通过身份验证才能访问您的应用程序。

请注意,您的常规组件将是无组件受保护路由的子组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章