基于 JWT 身份验证和角色在 Express 中路由到多个 Angular 7 项目

Posted

技术标签:

【中文标题】基于 JWT 身份验证和角色在 Express 中路由到多个 Angular 7 项目【英文标题】:Routing to multiple Angular 7 projects in Express based on JWT authentication and Role 【发布时间】:2019-07-05 19:48:46 【问题描述】:

我创建了一个 Angular 7 项目,该项目有多个不同角色的应用程序,如管理员、用户、编辑器等。每个应用程序都有不同的组件和视图。

登录的用户将登陆其用户角色应用程序,而任何访客用户都将登陆具有登录和注册页面的“网站”应用程序。

我的问题是根据身份验证期间确定的用户角色使用 express 路由到不同的角度应用程序。这适用于一个角度应用程序,但不适用于多个角度应用程序

app.get('/', (req, res) => 
  if (user.isAdmin) 
    return res.sendFile(path.join(__dirname, '../../client/dist/admin/index.html'));
  
  if (user.isUser) 
    return res.sendFile(path.join(__dirname, '../../client/dist/user/index.html'));
  
  return res.sendFile(path.join(__dirname, '../../client/dist/website/index.html'));
)

【问题讨论】:

【参考方案1】:

解决了,只需要将 index.html 重命名为不同的角色名称,如下所示,

app.get('/', (req, res) => 
  if (user.isAdmin) 
    return res.sendFile(path.join(__dirname, '../../client/dist/admin/admin.html'));
  
  if (user.isUser) 
    return res.sendFile(path.join(__dirname, '../../client/dist/user/user.html'));
  
  return res.sendFile(path.join(__dirname, '../../client/dist/website/website.html'));
)

【讨论】:

以上是关于基于 JWT 身份验证和角色在 Express 中路由到多个 Angular 7 项目的主要内容,如果未能解决你的问题,请参考以下文章

使用 express-jwt 进行基于角色的授权?

如何在 Python 中使用 JWT 实现基于角色的身份验证

如何使用基于 JWT 令牌的 express 获取经过身份验证的用户信息

如何制作和使用基于 JWT 角色的身份验证?

ASP.Net Core Identity JWT 基于角色的身份验证被禁止

express jwt - 身份验证中间件问题