Node.js Passport/ExpressJS-如何使用cookie正确维护会话状态?
我不熟悉在我和我的客户之间使用express的Passport身份验证 服务器和客户机(在两个不同的端口上),我拥有强大的 难以理解维护会话状态的概念 使用Passport并尝试检索Node.js Passport/ExpressJS-如何使用cookie正确维护会话状态?,node.js,session,express,authentication,passport.js,Node.js,Session,Express,Authentication,Passport.js,我不熟悉在我和我的客户之间使用express的Passport身份验证 服务器和客户机(在两个不同的端口上),我拥有强大的 难以理解维护会话状态的概念 使用Passport并尝试检索req.session.Passport.user 以确定是否从具有 已成功登录 使用Passport检查持久会话状态 在我的代码中,我有一个到我的个人资料页面的路由,它使用我自己的 验证函数。我的登录路径使用 passport.authenticate('local')我应该应用这个吗 到所有后续路线(如我的个人资
req.session.Passport.user
以确定是否从具有
已成功登录
使用Passport检查持久会话状态
在我的代码中,我有一个到我的个人资料页面的路由,它使用我自己的
验证函数。我的登录路径使用
passport.authenticate('local')
我应该应用这个吗
到所有后续路线(如我的个人资料),或是我的
需要身份验证吗?
Session {
cookie:
{ path: '/',
_expires: 2017-07-11T01:38:30.087Z,
originalMaxAge: 14400000,
httpOnly: true,
secure: false } }
req.session.passport
未定义
由于某些原因,与/profile GET请求一起发送的cookie在成功登录后(通过)丢失了passport
对象
passport.use('local-login')
)如果我
console.log(请求会话)
中的authenticated
这是为什么?
Session {
cookie:
{ path: '/',
_expires: 2017-07-11T01:38:30.087Z,
originalMaxAge: 14400000,
httpOnly: true,
secure: false } }
服务器代码
客户端代码
我知道实际上有相当多的文章/帖子可用
类似的问题,但应用许多不同的解决方案
对我来说一切都失败了。对我的问题的任何具体帮助都是非常重要的
谢谢
您只需使用req.isAuthenticated()方法检查用户是否已成功登录。你试过了吗?我刚试过,但结果不是真的。根据这一点,该函数还检查req.session.passport.user,因此我仍然会遇到相同的问题:
// profile.js (client action code with react-redux)
export function profile(terms, location) {
return (dispatch) => {
return fetch('profile',
{credentials: 'include'})
.then(response => response.json())
.then(json => { dispatch(profileSuccess(json)); })
.catch(error => dispatch(profileError(error)));
}
}