将node.js与快速服务器一起使用,我的目的是在会话中保存已登录的本地用户,这样我就可以从前端调用它,并在用户实际登录时获取用户信息 .
为此,我使用快递和护照 . 如果正确登录并在req中保存会话,以下代码将返回用户 .
我已经验证了查询并正确返回了数据 .
passport.use('local-login', new LocalStrategy({
usernameField: 'email',
passwordField: 'pass',
passReqToCallback: true
},
function(req, email, pass, done) {
return modelUsers.login(email, pass, done);
}));
这是我的会话配置 .
app.use(session({
resave: true,
saveUninitialized: true,
secret: 'strongertogether',
cookie: { secure: false }
} )); // session secret
app.use(passport.initialize());
app.use(passport.session()); // Persistent login sessions
app.use(cors()); //Required for signin facebook
据我所知,一旦登录完成,用户就会保存在会话中,函数req.isAuthenticated()应该返回一个真值但是为false,req.user是未定义的 .
事实上,Twitter和Facebook会话正常工作 .
从前端(Angular.js)我打电话给
app.get('/api/loggedin', usersController.loggedin);
那就是
function loggedin(req, res) {
res.send(req.isAuthenticated() ? req.user : '0');
}
版本:
“表达”:“^ 4.9.3”
“快递会”:“^ 1.11.3”
“本地护照”:“^ 1.0.0”
“护照”:“^ 0.2.2”
1 回答
你读过护照当地的文件吗?
passport-local npm
你有没有在你的路线中使用像路段一样的路线?
你可以在护照本地的文件上找到上面的代码 .
或者你可以尝试在这里查看:https://github.com/egin10/login-passport/blob/master/routes/users.js