问题标签 [passport.socketio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
express - 如何在全局范围内同时使用 express.io 和 passport.socketio 身份验证功能
socket.io 支持单一的全局授权方法,没有中间件功能。express.io 和 passport.socketio 都依赖此功能作为其逻辑的注入点。
express.io 将 express 会话附加到请求,passport.socketio 附加膨胀的用户对象。如何优雅地结合这两个功能?
mongodb - Socket.io、Passport、MongoDB 和 passport.socketio 在生产中损坏
我在 socket.io 上构建了一个 nodejs 应用程序中继,使用 Passport 和 passport.socketio 进行身份验证和授权,使用 mongodb 和 connect-mongo 进行会话存储。
它在我的笔记本电脑上运行良好,但是当我迁移到云 (Azure-VM) 时,我开始遇到奇怪的错误。
2014 年 5 月 2 日,11:47:06.500 监听端口 8081 (https)
任何想法从哪里开始?
node.js - Primus.io 和 passport.js
我考虑从Socket.io 迁移到Primus.io(由于可伸缩性错误),但我缺少的一个主要插件是 primus- passportjs授权插件(类似于passport.socketio)。
你知道任何这样的插件或代码示例吗?
node.js - 如何在有护照的风帆中使用passport.socketio
用户登录后使用 socketio 时收到以下错误。我找到了可能解决这个问题的passport-socketio,但我不知道如何将它集成到sails.js。你知道任何代码示例吗?认为
javascript - 护照-socketio 打破护照实施?
这是我的套接字配置:
这是 login 的护照实现,在没有 passport.socketio 的情况下效果很好:
这是我收到的错误,我不知道如何解决它:
为什么要在用户对象上运行某种函数?我不明白!如果我将 done 方法留空,它不会崩溃,但也没有设置会话并且我没有登录。
node.js - Node.js socket.io 状态行不以 CRLF 结尾
每次 socket.io 尝试连接时,我都会遇到错误(chrome 33 / firefox 24):
WebSocket 连接到“wss://playground-c9-doum.c9.io/socket.io/1/websocket/QBGO1ZlPhWUBkMVQ9cUP”失败:WebSocket 握手期间出错:状态行不以 CRLF socket.io.js:2371 结尾
在服务器端:
客户端 :
我正在使用 express、passport、passport-socket.io ......
我不认为问题出在passport-socket.io,因为我尝试删除套接字配置(io.set('authorization'))的'auth'部分,但我遇到了同样的问题。
我还尝试为客户端 socket.connect(url) 提供一个特定的 url,但也没有工作。
Socket.io 并没有完全失败,websocket 连接被中止,所以它开始 xhr-polling(很痛苦......)。
做了很多研究,没有发现任何关于这个问题的东西(还在 github 上发布了一个新问题)。
npm socket.io -v give 1.3.8 /socket.io/socket.io.js (client) is Socket.IO.js build:0.9.16
deserialization - passport.socketio 的护照“无法将用户反序列化出会话”。但是我的主应用程序中的护照(使用相同的密钥)反序列化就好了
passport.socketio 抛出此错误,同时未能授权用户。
错误:错误:无法将用户反序列化出会话
我已将问题缩小到 passport.socketio 的问题/lib/index.js
。
在第 59 行
它抛出该错误。调试器告诉我它userKey
是有效的,应该反序列化用户。这与我的主应用程序中的护照用于反序列化用户的密钥相同。(这是 mongoDB 对象的 ID)。我的主应用程序中的护照在反序列化用户时没有问题。(详细信息)所以不知道为什么这仍然会引发错误。
userKey
此处传递的密钥与我的主应用程序中用于反序列化的密钥护照相同。
我已经达到了制作userKey
全局并将其放入我的主要代码的程度
这会导致无限循环(因为它在外部 passport.deserialize 内部)但 iut 打印“ok”!所以我的主应用程序中的护照可以使用与 index.js 中的护照相同的东西至少反序列化(passport.socketio\lib\ index.js) 不能!.. 由于某些原因。
然后我什至尝试从主应用程序传递护照对象本身
这实际上不会导致错误!但后来我没有得到socket.handshake
对象。
我没有进一步诊断的想法,并且非常感谢任何帮助。
What could be causing passport.socketio
's passport
to not "deserialize user out of session"?
node.js - 当用户被授权添加到会话时如何打开套接字连接?
我正在尝试设置一个快速服务器,其中将在使用本地护照进行用户身份验证时启动套接字连接。我在配置护照的文件的最后一行收到错误“TypeError:对象不是函数”。
这是我的 passport.js 文件:
这是我的 server.js 文件:
我的 routes.js 中处理登录的部分:
如果我注释掉io.set('authorization'函数,用户好像在认证。我以为函数所做的就是使用passport认证函数来允许建立一个socket连接。为什么突然不当我尝试启动套接字连接时进行身份验证?
我不认为我完全理解身份验证的工作方式。当我提交登录表单时,我会向“dirname/login”发送一个帖子,该帖子在我的 routes.js 文件中处理。passport.authenticate 是收到帖子时要运行的回调,然后在我的数据库中搜索播放器,如果收到正确的用户名和密码,播放器对象将被序列化并添加到会话中。socket.io 是从哪里来的?io.set('authorization' 函数是否添加了一个监听器来查看用户何时通过身份验证?
对不起,代码墙,我是节点新手,我不完全理解这个过程。
node.js - Express.io 是否具有重新加载会话数据的属性授权?
我一直在实现套接字概念,如https://github.com/techpines/express.io/tree/master/examples/sessions,我能够显示页面初始化后存储的会话数据。但是,尽管如此,当会话数据在一段时间内不断变化时,我得到的会话数据未定义。
但是使用 socket.io 授权和握手会话可以很好地完成类似的概念,提供链接http://www.danielbaulig.de/socket-ioexpress/
客户端代码:
服务器端代码:
在控制台中,它在每次发出时都打印为未定义...我想知道为什么套接字会话没有更新,因为原始用户会话不断变化...???
我是否需要在服务器端添加任何额外的配置来处理更改的会话数据???
javascript - Node.JS + Passport.SocketIO:编辑和保存 `socket.handshake.user` 属性
我正在使用 Node.JS (0.10.28)、Passport.JS (0.2.0) + Passport-Google (0.3.0) 和 Passport.SocketIO (3.0.1)。
目前,我可以使用以下方法访问由 Passport.JS 在我的应用程序路径中创建的用户req.user
:
使用 Passport.SocketIO,我还可以访问用户:
也可以req.user
通过req._passport.session.user.property = new_property_value
在app.get/post/all(...)
范围内使用来编辑和“保存”它。然后更新显示在io.sockets.on(...)
用户对象中。
我的问题是:是否可以socket.handshake.user
在io.sockets.on(...)
范围内编辑和“保存”,以便更新后的用户将在req.user
中显示更改app.get/post/all(...)
?我尝试了以下方法无济于事: