【发布时间】:2021-08-10 19:30:03
【问题描述】:
我正在开发一个 MERN 应用程序,学生可以在其中登录并填写他们的申请,以及可以批准申请和执行其他管理工作的管理员用户(具有不同角色)。因此,我决定为用户(学生和用户)提供两种不同的模型(mongoDB 集合),因为学生有额外的数据需要存储在数据库中。验证的最佳方法是什么?以及构建路线的最佳方式是什么?
【问题讨论】:
标签: node.js reactjs mongodb mongoose jwt
我正在开发一个 MERN 应用程序,学生可以在其中登录并填写他们的申请,以及可以批准申请和执行其他管理工作的管理员用户(具有不同角色)。因此,我决定为用户(学生和用户)提供两种不同的模型(mongoDB 集合),因为学生有额外的数据需要存储在数据库中。验证的最佳方法是什么?以及构建路线的最佳方式是什么?
【问题讨论】:
标签: node.js reactjs mongodb mongoose jwt
首先给定您的场景,这很简单,当他们尝试登录时,使用某些复选框或某种机制询问他们希望以用户身份登录或以学生身份登录,然后基于此运行您的登录逻辑。
但是,如果您只有一个用于身份验证的模型(例如用户)然后有一个字段 user_role 来控制他们的权限/授权,那真的很有意义。
对于路由,您可以检查中间件,根据他们是否可以访问它的 user_role。
【讨论】:
只处理一个模型(用户)并添加一个角色字段会容易得多。 因此,您只需查询一个集合即可在登录过程中找到用户。 如果您将 Express 与 JWT 一起使用,您必须编写一些中间件来处理令牌并将请求传递给处理程序或使用 401 中止它,您只需添加一些 if 语句来检查令牌有效负载中的角色是否是学生或管理员
【讨论】: