【问题标题】:Change Jhipster landing page based on Authority根据权威更改 Jhipster 登陆页面
【发布时间】:2019-03-05 01:48:34
【问题描述】:

我已经看到可以通过包含这个来更改 Jhipster 登录页面,

registerAuthenticationSuccess() {
    this.eventManager.subscribe('authenticationSuccess', (message) => {
        this.principal.identity().then((account) => {
         if (account.authorities.indexOf('ROLE_CONTRACTOR') >=0)
        {
            this.router.navigate(['/property']);
        }
        else
        {
            this.account = account;
        }
        });
    });
}

在 home.component.ts 中并在 onInit 方法中调用它,

this.principal.identity().then((account) => {
        this.account = account;
    });
    this.registerAuthenticationSuccess();

但是,就我而言,这不起作用。在我的主页中,我只定义了管理员权限才能访问 route.ts 文件中的主页,如下所示,

export const HOME_ROUTE: Route = {  path: '',  component: HomeComponent, data: {    authorities: ['ROLE_ADMIN'],    pageTitle: 'home.title'  },  canActivate: [UserRouteAccessService]};

但是当我以承包商身份登录时,我被重定向到登录页面,说我没有访问主页的权限。它不会被重定向到属性页。

【问题讨论】:

    标签: jhipster


    【解决方案1】:

    我猜,在 Jhipster 中,一旦我们登录,它就会默认转到 HomeComponent。在您的情况下,它失败了,因为只有 ROLE_ADMIN 可以访问 HomeComponent。所以显然它不会允许具有 ROLE_CONTRACTOR 的用户登录,它会在调用您编写路由器导航代码的方法之前被重定向到未经授权的页面。

    所以尝试通过从路由路径中删除权限:['ROLE_ADMIN'],这样它将允许所有用户访问 HomeComponent,如果用户使用 ROLE_CONTRACTOR,它将重定向到属性页。

    【讨论】:

    • 这不起作用,如果我允许 home.component 中的所有角色,它会加载主页而不重定向。我想在进入主页之前根据角色重定向。我尝试在登录页面中这样做,但它不起作用。
    猜你喜欢
    • 2017-08-18
    • 1970-01-01
    • 2016-08-30
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多