我需要使用passport-local-role
节点模块实现基于角色重定向到不同页面的函数。
例如:
'管理' => http://domainname/admin
'用户' => http://domainname/profile
答案 0 :(得分:0)
我建议您为每个角色创建客户端的单独目录。在服务器端,在会话中存储用户角色。然后创建一个像这样的函数
function getRoot(request, response) {
if (request.user && request.user.roleName === 'visitor') {
response.sendFile(path.join(__dirname, '../', 'client/visitor/visitor.html'));
}
else if (request.user && request.user.roleName === 'user') {
response.sendFile(path.join(__dirname, '../', 'client/user/user.html'));
}
else if (request.user && request.user.roleName === 'admin') {
response.sendFile(path.join(__dirname, '../', 'client/admin/admin.html'));
}
else {
response.sendFile(path.join(__dirname, '../', 'client/visitor/visitor.html'));
}
}
使用passport
包:
passport.use(new LocalStrategy(function (username, password, done) {
if ((!username && !password) || !username || !password) {
return done(null, false, {
message: invalidUsernameOrPassword
});
} else {
visitor.login(username, password)
.then(function (result) {
return done(null, result);
})
.catch(function (error) {
return done(null, false, error);
});
}
}));
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
done(null, user);
});