Passport.js req.user 服务器端文件更改后对象未定义(节点、快递)

Passport.js req.user object is undefined after server side file changes (node, express)

我正在使用 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 Session 将默认使用 MemoryStore。这会将会话数据保存在内存中,因此当您更改服务器端代码并​​触发服务器重新加载时,会话存储将被擦除并且所有会话数据都将丢失。

使用 a different session store (such as session file store) 将数据永久存储在某处。

使用下面的 link 看看有什么叫做 Store 的东西。 使用实际使用 passportjs 会话存储的内容

https://blog.risingstack.com/node-hero-node-js-authentication-passport-js/