【发布时间】:2021-01-18 19:30:13
【问题描述】:
我是用于 express 和 socket.io 服务器身份验证的用户 passport.js。我已经通过使用 passportSocketIo 来解决这个问题。当经过身份验证的用户访问服务器时,他们会成功反序列化并成功回调。
但是,我现在想访问反序列化的用户详细信息并将它们附加到套接字以用于核心服务器功能。谁能告诉我在哪里可以找到这些详细信息?
对于上下文,实现如下所示...
passportSocketIo.authorize({
cookieParser: cookieParser, // the same middleware you registrer in express
key: 'auth', // the name of the cookie where express/connect stores its session_id
secret: 'keyboard cat', // the session_secret to parse the cookie
store: tediousConfig, // we NEED to use a sessionstore. no memorystore please
success: onAuthorizeSuccess, // *optional* callback on success - read more below
fail: onAuthorizeFail, // *optional* callback on fail/error - read more below
})(socket, next);
成功功能是基本的。我可以在此处的数据参数中找到反序列化的用户,但在这里我无法访问套接字以将这些详细信息永久附加到。
function onAuthorizeSuccess(data, accept){
const userId = data.user.id
console.log(`User connected: ${userId}`)
accept()
}
此函数运行良好,我可以在成功函数中访问用户 ID(如 console.log 中所示)。
一种解决方案可能是将套接字也传递给成功函数并在此处附加详细信息,但我不明白“数据”和“接受”参数的来源足够好以便能够传递这些在。
对于我正在尝试做的事情,很可能还有一个更简单的解决方案!
感谢您的帮助
【问题讨论】:
标签: node.js socket.io passport.js passport.socketio