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/
我正在使用 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/