gpt4 book ai didi

node.js - session 未在 Express 中创建

转载 作者:太空宇宙 更新时间:2023-11-04 01:54:57 25 4
gpt4 key购买 nike

这是项目[dev分支]:https://github.com/asid-team/library_system

我正在开发一个图书馆应用程序。它是服务器端渲染的,我使用 Express 和 Passport 进行身份验证和 MongoDB。

问题是,我想要两个用户角色(1 个用于普通用户,1 个用于图书馆员,即在图书馆工作的人员)。所以,我想出了链接 https://github.com/asid-team/library_system/tree/dev/config/routes 上显示的内容

它非常适合用户。 Passport 完成所有工作,并在成功登录后生成 req.user 。但是,图书馆员部分似乎无法正常工作:它不会保存图书馆员 session 。

你能发现我的方法/代码中的错误吗?

编辑:当我 console.log session 的 req 时,我得到:

sessions:
{ UaRq2ZBvDAkeckjWJU38wfdlalPmKKwb: '{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"flash":{},"passport":{}}',
zl24_yTpebRC6rP4I9pcNwCVKNwXa2zH: '{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"flash":{},"passport":{"user":"5a620ae6091a07cf8dc82fc9"}}',
'359N-18VDvgNIDzVj-BQ_t_vdQ8Iav7H': '{"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path":"/"},"flash":{},"passport":{"user":"5a61f14bb4bd20c692aa87e8"}}' },

这两个用户 5a620ae6091a07cf8dc82fc95a61f14bb4bd20c692aa87e8 是用户。

最佳答案

问题在于您定义了 passport.serializeUserpassport.deserializeUser 两次。 Passport 对象在您的用户和图书馆员 route 是相同的,因此实际上会被忽略。

可能有很多不同的方法来解决这个问题,有些方法比其他方法更hacky,但是this Passportjs Github issue有一些讨论。

最终,您将需要一组序列化和反序列化函数来处理用户和图书馆员。

关于node.js - session 未在 Express 中创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48344323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com