gpt4 book ai didi

deserialization - Passport.socketio 的 Passport "Failed to deserialize user out of session"。但是我的主应用程序中的 Passport (具有相同的 key )反序列化得很好

转载 作者:行者123 更新时间:2023-12-01 22:32:46 26 4
gpt4 key购买 nike

passport.socketio 抛出此错误,同时无法授权用户。

Error: Error: Failed to deserialize user out of session

我已将问题范围缩小到 Passport.socketio 的 /lib/index.js .

第 59 行

  auth.passport.deserializeUser(userKey, function(err, user) {
if (err)
return auth.fail(data, err, true, accept);
...

它会抛出该错误。调试器告诉我 userKey 有效,并且应该反序列化用户。这是我的主应用程序中的 Passport 用于反序列化用户的相同 key 。 (这是mongoDB对象的ID)。我的主应用程序中的 Passport 在反序列化用户时没有问题。 (details)所以不知道为什么这仍然会引发错误。

此处传递的userKey与我的主应用程序中用于反序列化的 key Passport 相同。

我已经将 userKey 设为全局并将其放入我的主代码中

  passport.deserializeUser(global.userKey, function(err, user) {
if (err)
return auth.fail(data, err, true, accept);
console.log('ok');

这会导致无限循环(因为它在外部 Passport.deserialize 内部),但 iut 打印“ok”!,因此我的主应用程序中的 Passport 至少可以使用与 index.js 中的 Passport (passport.socketio)相同的东西进行反序列化。\lib\index.js) 不可以! ..出于某种原因。

然后我什至尝试从主应用程序传递 Passport 对象本身

io.set('authorization', require('passport.socketio').authorize({
passport: passport,
...

实际上没有错误!!但后来我没有得到 socket.handshake 对象。

我没有办法进一步诊断这个问题,并且非常感谢任何帮助。

什么可能导致 passport.socketiopassport 不“在 session 中反序列化用户”?

最佳答案

删除了npm_modules,用"every_package":"latest"重新编写了packages.json,基本上重新安装了每个包的最新版本。 That fixed it.

关于deserialization - Passport.socketio 的 Passport "Failed to deserialize user out of session"。但是我的主应用程序中的 Passport (具有相同的 key )反序列化得很好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23492459/

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