如何区分管理员和用户的路径?

时间:2020-05-12 02:51:51

标签: javascript node.js reactjs mongodb express

我正在node js中创建路由。我正在为仪表板创建路线。

  1. 用户登录并获得JWT token
  2. 通过发送令牌,用户可以访问与用户相关的某些路由(编辑,删除,注销路由等)。
  3. 但是对于admin,我想创建可查看用户列表,编辑或删除用户,检查用户注销时间的路由。我还在表中设置了标志,以标识此人是user还是Admin。

后端的管理员如何验证路由?

2 个答案:

答案 0 :(得分:4)

您会受到此逻辑的启发,在此不再赘述。请按照以下步骤操作(可能会有帮助):

首先)role字段定义为 DB mongoDBMysql(例如):

enum: ['user', 'admin']

第二)创建函数checkRole(role)用于登录后检查角色并验证jwt,然后获取用户

第三)为管理面板创建单独的路由(例如):

router.route('/admin-panel').use(authController.checkRole('admin'))

答案 1 :(得分:1)

您可以在JWT中放置授权标志。当用户登录时,您的服务器会生成相应的JWT,其中包含认证信息(即userId)。您可以在令牌中添加其他授权信息(即auth)。

基于auth字段,您的服务器可以识别请求是由一般用户还是管理员发送的。当然,保护JWT免受劫持是另一回事。