我正在开发一个MERN应用程序,学生可以登录到填写他们的申请,管理用户(具有不同的角色),可以批准申请和做其他管理工作。因此,我决定为用户(学生和用户)使用两种不同的模型(mongoDB集合),因为学生有额外的数据需要存储在数据库中。身份验证的最佳方法是什么?那么构建路由的最佳方式是什么呢?
发布于 2021-05-21 22:46:41
只处理一个模型(用户)并添加一个角色字段会容易得多。因此,您只需查询一个集合,即可在登录过程中找到该用户。如果您将Express与JWT结合使用,则必须编写一些中间件来处理令牌,并将请求传递给处理程序或使用401中止它,您只需添加一些if语句来检查令牌有效负载中的角色是学生还是管理员
发布于 2021-05-21 22:51:24
首先给出你的场景,这很简单,当他们尝试登录时,使用一些复选框或某种机制来询问他们是作为用户登录还是作为学生登录,然后基于此运行您的登录逻辑。
但是,如果您只有一个用于身份验证的模型,例如用户,然后有一个字段user_role
来控制他们的特权/授权,这将是非常有意义的。
对于路由,您可以有中间件来检查,根据user_role它们是否可以访问它。
https://stackoverflow.com/questions/67639097
复制相似问题