如何解决使用相同的登录表单登录nodejs中的Admin和User帐户?
我正在使用Passport Js进行身份验证,并且有两种本地身份验证策略-已定义student
和admin
。当前,我正在使用两条不同的路由/admin/login
和/student/login
登录。这两条不同的路由接收来自两种不同形式的POST请求,并使用适当的本地策略进行身份验证。
我只想为管理员和学生使用一种路由/login
进行登录。如何使用当前设置实现该目标?
解决方法
如果您对两种用户类型(即“用户”和“管理员”)具有相同的架构,请在该架构内添加一个新的布尔值,以表示用户是否为“管理员”。
例如: (如果您使用的是猫鼬)
var UserSchema = new mongoose.Schema({
username: String,password: String,isAdmin: {type:Boolean,default:false},});
在注册新用户时,还应该以下拉菜单或单选按钮的形式添加相应的字段。
现在,您可以使用相同的POST路由来登录这两种类型的用户,并且已登录用户的isAdmin属性可用于区分它们,还可以更改为不同用户显示的内容。
例如如果您使用“ ejs”作为视图引擎,那么
<% if(currentUser.isAdmin) { %>
<p> You can see this! </p>
<% } %>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。