首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular UrlMatcher插入身份验证服务

问Angular UrlMatcher插入身份验证服务
EN

Stack Overflow用户
提问于 2019-11-29 07:58:12
回答 1查看 248关注 0票数 2

我们有一个超级管理员和组织管理员级别的控制台。当您以超级管理员身份登录时,我希望路由/进入超级管理员模块。

代码语言:javascript
复制
[super admin]
   + [Organisations]
   + [Users]
   + etc..

像/organisations/list和/organisations/Apple/posts这样的路线将在“进入”一个组织时实现。

当您以组织管理员身份登录时,根/应加载组织模块。

代码语言:javascript
复制
[org admin]
   + [Posts]
   + [Users]
   + [Events]
   + etc.

我遇到的问题是,我想使用URLMatcher来允许基于授权在同一路径上加载2个模块。为此,我必须能够将身份验证服务注入到可能的URLMatcher函数中。

在评估路由时,似乎会首先处理UrlMatcher。使用Resolver是没有帮助的,因为这会在之后发生。我能做的唯一真正的事情就是访问LocalStorage并解码JWT来获得授权信息,但在我看来这似乎很麻烦。

目前,我唯一的解决方案是为超级管理员提供自己的路径/admin/,为组织管理员提供根/。虽然不是世界末日,但如果能对UrlMatcher有更多的控制就太好了。

有什么建议如何解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2019-11-29 08:05:57

我现在的想法是创建一个包装器路由;

代码语言:javascript
复制
{
  path: '',
  component: WrapperComponent
}

WrapperComponent可以根据身份验证显示相关视图。

WrapperComponent

代码语言:javascript
复制
<super-admin *ngIf="role == 'superAdmin'; else orgAdmin"></super-admin>

<ng-template #orgAdmin>
  <org-admin></org-admin>
</ng-template>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59097300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档