最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Passport.js req.user对象后服务器侧文件更改未定义(节点表达)

IT培训 admin 9浏览 0评论

Passport.js req.user对象后服务器侧文件更改未定义(节点表达)

我使用passport.js对用户进行认证,以我的应用程序,但我已经注意到,在服务器上的文件进行任何更改后,req.user不确定。 Nodemon正确重装所有的文件,但我打刷新后 - 一个应用程序被打破,req.user是不确定的。什么是重要的:当服务器端的文件发生更改时才会发生。当有没有变化我可以刷新多次,一切正常。

这是我的配置代码:

app.use(
  session({
    secret: process.env.EXPRESS_SESSION_KEY,
    unset: 'destroy',
    saveUninitialized: false,
    resave: false
  })
);
app.use(bodyParser.urlencoded({ extended: false, credentials: true }));
app.use(bodyParser.json());
app.use(
  cors({
    origin: FRONTEND_URL,
    credentials: true
  })
);
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static('../../dist'));

我无法找到任何解决方案。这是非常恼人的服务器端的任何文件更改后,重建整个应用程序。

我也注意到,req.session是文件更改后为空。这是为什么?

回答如下:

您还没有指定the store property,所以Express会话将默认使用MemoryStore。这在内存中保存会话数据,所以当你改变服务器端代码和触发服务器重新加载,会话存储被抹去,所有的会话数据都将丢失。

使用a different session store(如session file store),其存储数据的地方执着。

Passport.js req.user对象后服务器侧文件更改未定义(节点表达)

我使用passport.js对用户进行认证,以我的应用程序,但我已经注意到,在服务器上的文件进行任何更改后,req.user不确定。 Nodemon正确重装所有的文件,但我打刷新后 - 一个应用程序被打破,req.user是不确定的。什么是重要的:当服务器端的文件发生更改时才会发生。当有没有变化我可以刷新多次,一切正常。

这是我的配置代码:

app.use(
  session({
    secret: process.env.EXPRESS_SESSION_KEY,
    unset: 'destroy',
    saveUninitialized: false,
    resave: false
  })
);
app.use(bodyParser.urlencoded({ extended: false, credentials: true }));
app.use(bodyParser.json());
app.use(
  cors({
    origin: FRONTEND_URL,
    credentials: true
  })
);
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static('../../dist'));

我无法找到任何解决方案。这是非常恼人的服务器端的任何文件更改后,重建整个应用程序。

我也注意到,req.session是文件更改后为空。这是为什么?

回答如下:

您还没有指定the store property,所以Express会话将默认使用MemoryStore。这在内存中保存会话数据,所以当你改变服务器端代码和触发服务器重新加载,会话存储被抹去,所有的会话数据都将丢失。

使用a different session store(如session file store),其存储数据的地方执着。

发布评论

评论列表 (0)

  1. 暂无评论