Zug*_*alt 8 session node.js express passport.js
我在我的node.js/express应用程序中使用带有本地身份验证策略的passport.js.
返回的用户LocalStrategy
包括电子邮件和用户名等内容.
我想让用户能够在应用程序中更新他们的电子邮件或用户名.当发生这种情况时,我想告诉护照重新加载用户(类似于他们刚刚登录),以便req.user反映会话剩余部分的更新更改.简单地设置它似乎不会超过那个请求.
简化示例:
app.get('/changeEmail', function(req, res, next) {
var userId = req.user.id;
var origEmail = req.user.email;
var newEmail = req.param('email');
userDao.updateEmail(userId, newEmail, function(err) {
if (!err) {
// user's email has changed, need change reflected in req.user from this point on
req.user.email = newEmail;
}
next();
});
});
Run Code Online (Sandbox Code Playgroud)
您应该能够logIn
根据请求调用该方法.这将调用该serializeUser
方法来更新会话.
userDao.updateEmail(userId, newEmail, function(err) {
if (!err) {
// user's email has changed, need change reflected in req.user from this point on
var user = req.user;
user.email = newEmail;
req.logIn(user, function(error) {
if (!error) {
// successfully serialized user to session
}
});
}
next();
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2089 次 |
最近记录: |