Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Passport/ExpressJS-如何使用cookie正确维护会话状态?_Node.js_Session_Express_Authentication_Passport.js - Fatal编程技术网

Node.js Passport/ExpressJS-如何使用cookie正确维护会话状态?

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')我应该应用这个吗 到所有后续路线(如我的个人资

我不熟悉在我和我的客户之间使用express的Passport身份验证 服务器和客户机(在两个不同的端口上),我拥有强大的 难以理解维护会话状态的概念 使用Passport并尝试检索
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)));
  }
}