我是Node.js中的新手,並使用passport-local策略進行登錄會話。我已經在我的網絡應用程序中設置了所有內容,但會話時遇到了很大的問題。護照在Node.js中使用快遞的本地策略會話
我試過多個用戶可以同時登錄到我的網絡應用程序,但是有一個問題。其中一個用戶(例如用戶名是Paul)首先登錄,然後另一個用戶(Chris)登錄,然後Paul對我的Web應用程序的看法更改爲Chris的視圖。
我不知道你們明白我的意思是說,但這裏是我在Node.js的
app.get('/location', isLoggedIn, function(req, res){
var user_temp = {user: ''};
user_temp.user = global_username;
res.render('location/index1', user_temp);
});
而下面的代碼代碼之一是護照本地策略
var LocalStrategy = require('passport-local').Strategy;
passport.use('local-login',
new LocalStrategy({
usernameField : 'email',
passwordField : 'password',
passReqToCallback : true
},
function(req, email, password, done) {
User.findOne({ 'email' : email }, function(err, user) {
if (err) return done(err);
if (!user){
req.flash("email", req.body.email);
return done(null, false, req.flash('loginError', 'No user found.'));
}
if (!user.authenticate(password)){
req.flash("email", req.body.email);
return done(null, false, req.flash('loginError', 'Password does not Match.'));
}
var email_address = req.body.email;
username_tmp = email_address;
var username = email_address.substring(0, email_address.lastIndexOf("@"));
global_username = username;
pass = req.body.password;
return done(null, user);
});
}
)
);
我認爲問題是因爲global_username,所以Paul可以看到Chris的位置視圖。但是,我不知道如何獲取用戶變量並將其放入每個用戶的ejs中。
有人可以幫我在這裏....?
在此先感謝!
P.S.如果我問的是困惑, 我可以再次編輯我的問題,並解釋更多...
感謝您的回答!它現在有效! :)並且對於遲到的迴應感到抱歉...:'(希望你有一個美好的一天!我的生活救星!:) – paulc1111