我是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