使用nodejs/express/mongoose/jwt对来自不同模型的两个不同用户进行身份验证



我正在开发一个MERN应用程序,学生可以登录该应用程序填写他们的申请,管理用户(具有不同角色(,用户可以批准申请并做其他管理工作。因此,我决定为用户(学生和用户(提供两个不同的模型(mongoDB集合(,因为学生有额外的数据需要存储在DB中。身份验证的最佳方法是什么?构建路线的最佳方式是什么?

只处理一个模型(用户(和添加一个角色字段会容易得多。因此,您只需要查询一个集合,就可以在登录过程中找到用户。如果你在JWT中使用Express,你必须编写一些中间件来处理令牌,并将请求传递给处理程序或用401中止它,你只需添加一些if语句来检查令牌有效负载中的角色是否是学生或管理员

首先,给定您的场景,很简单,当他们尝试登录时,请使用一些复选框或某种机制询问他们想以用户身份登录或以学生身份登录,然后在此基础上运行您的登录逻辑。

然而,如果您只有一个身份验证模型(如用户(,然后有一个字段user_role来控制他们的权限/授权,那么这将是非常有意义的。

对于Routes,您可以有中间件进行检查,根据user_role,他们是否可以访问它。

最新更新