问题标签 [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.

0 投票
1 回答
1703 浏览

security - 使用 MEAN.js 实现安全性的更好方法是什么

我正在使用mean.js,我对这里的身份验证和授权有点怀疑......

MEAN.js 带有一个开箱即用的 passport.js 实现,它似乎对我来说足够好,只是为了知道用户何时登录。但在授权的那一刻,我脑海中突然出现了一些问题.. 做我的研究我得到了一些答案,但我不知道在我的应用程序中实现安全 API 调用的最佳方式是什么。

到目前为止,我正在采用这个解决方案:

使用 express.all() 函数在一个文件中设置我所有的授权函数(我想这是一个很好的做法,对吧?).. 使用以下代码示例创建一个文件:

到目前为止,这是我计划实施的解决方案,但我想确定我在这里做什么......有没有更好的方法在 mean.js 中实施授权?这个授权中间件是不是用护照错误地实现了?我不确定是否有必要对此实施另一种策略..或者此实施是否缺乏安全性(当然必须)..最好使用Oauth或使用api令牌???保护使用 MEAN.js 制作的应用程序支持角色和权限的架构应该是什么?将来我也需要保护我的套接字。我正在查看passport-socketio ..但不确定是否有更好的解决方案。

0 投票
5 回答
4750 浏览

node.js - Passport.socketio 在查找会话时遇到问题

我正在尝试从套接字访问会话,但似乎无法建立连接。没有失败,授权失败,我收到带有以下消息的失败回调:

我会将所有代码放在这里,以便更容易发现我做错了什么。

我应该如何使用 socket.io 建立与会话的连接?

另外,我看到用户数据是通过socket.handshake.user. 在这种情况下是否正确?

为了清楚起见,版本如下:

编辑

看来问题的一部分是已经存在的localhostvs错误。127.0.0.1但是,现在我没有得到任何握手数据。

0 投票
1 回答
1005 浏览

java - 带有 socket.io 护照服务器身份验证的 Java Socket.io 客户端

我正在使用https://github.com/nkzawa/socket.io-client.java库,它可以工作。我的问题是我的服务器正在运行 socket.io 护照并需要身份验证。有谁知道我如何使用 socket.io-client.java 库对我的客户端进行身份验证?提前致谢。

0 投票
0 回答
547 浏览

node.js - 如何在客户端访问护照用户?

我使用护照本地策略对用户进行身份验证,并使用connect-mongo作为 sessionstore 模块在mongodb中保存护照/快速会话,我集成 了passport.socketio并授权用户使用

onAuthorizeSuccess函数我控制台记录的 data.user来自护照。现在我可以访问服务器上的数据。但是我如何访问作为客户端护照用户的req.user

data.user给出与req.user相同的结果

我的客户端代码

我的服务器端代码

0 投票
2 回答
6719 浏览

javascript - 客户端两次连接到服务器,Socket.io

我正在尝试通过使用passport.socketio将socket.io连接到passport.js来记录登录用户的用户名。它是成功的,但是它记录了用户名两次,在尝试并搜索了相当长的时间后,我被卡住了。

代码部分如下:

服务器代码:

客户代码

输出如下:

我不确定为什么它会输出两次任何帮助将不胜感激。我对 Node.js 相对较新,但我不相信这是导致它的护照部分,但是我被卡住了,所以我可能没有最好的主意。

先谢谢了

编辑:尝试了最新版本的套接字并检查了我自己的版本似乎都是最新版本,只是为了确保我将客户端代码更新为:

问题依然存在

0 投票
1 回答
346 浏览

angularjs - passport.socketio & 客户端仅在重新启动服务器时连接/重新连接

我有一个实时应用程序,可以与 express+passportJS 一起正常工作,并且无需套接字身份验证。当我添加passport.socketio时,我的问题是套接字只会在我重新启动服务器时连接......

我在服务器上有 passportjs 和 passport.socketio,在客户端我有 angularjs 和btford.socket-io

当用户登录时,我正在做socket.connect();. 这似乎在服务器端没有做任何事情,我没有看到任何日志......

根据教程,这是 passport.socketio 的实现

奇怪的是,当我重新启动服务器时,我可以看到很多日志消息显示我现在尝试连接的所有套接字实际上都是 connect

然后它似乎让用户通过套接字交换并按预期工作。

任何人都知道可能会发生什么?

0 投票
0 回答
223 浏览

javascript - 如何将 node.js 服务器页面连接到我的套接字服务器,就好像它是客户端一样?

我在这里看到了许多类似的问题,例如关于将服务器连接到套接字的问题,但是,这似乎不起作用。

我的目标是让我的一个服务器页面偶尔向所有连接的客户端发出“提前”事件。我的套接字服务器监听器(sockets.js)看起来像这样

我的其他服务器页面(queue.js)有这个代码

我也试过

这两个都在我链接的另一个问题中,但是这两个都失败了。在第一个示例的情况下,我收到了错误

第二个

看起来 socket.connect 工作,但是 socket.on 和 socket.emit 都失败了。这个想法是 queue.js 将向所有客户端发出一个事件,因此他们知道从服务器请求下一首歌曲。

作为奖励,我碰巧正在使用passport.socketio来验证我的用户(尽管我似乎没有收到通常在用户尝试连接但未通过身份验证时出现的“ioAuthFail”消息)。

对于它的价值,我的套接字身份验证代码看起来像

如果有比使用 socket.io 更好的方式来推进客户,我也会接受,但现在看来这对我来说是最好的方式,假设我可以让它工作。

如通过评论所述进行编辑 ,将我的代码更改为

不会破坏它,但它也不起作用

0 投票
1 回答
1103 浏览

node.js - passport.socketio keeps saying - failed connection to socket.io: No session found

Im trying to access session object like req.user in socket.io so that I could do something with it, Im using passport.socket.io library to do this. However the problem right now is that i keep getting failed connection to socket.io: No session found.

Here's the code

It keeps running this function because passport has failed to make a handshake with socket.io onAuthorizeFail. How do I solve this problem?

0 投票
0 回答
40 浏览

node.js - 运行两个不同的 Express 服务器但相同的护照会话。可能的?

我在一个应用程序中有两个不同的快递服务器。两者都运行 socket.io 服务器。我也使用护照和mysql sessionStore。

我通过模块在一台快递服务器上成功地将护照登录从快递共享到socket.io 。passport.socketio

可悲的是,当我在同一个应用程序中启动新的 express + socket.io 服务器并尝试与在不同端口上运行的该服务器共享护照登录时,这似乎不起作用。

这可能吗?难道我做错了什么?

0 投票
0 回答
190 浏览

node.js - 使用 socket.io 连接到房间的用户如何获取在加入房间之前发送到房间的数据

用户加入房间并使用 passport.socketio 将其用户名发送到房间。在 socket.request.user.user_id 的帮助下,我能够获取套接字的 user_id 并从数据库中获取与 user_id 对应的用户名。

find_Roomid_GK() 是一个查找未填充房间的函数,如果已填充,它将创建一个房间并将其分配给 room_id。房间的功能没有问题。我只想将两个用户的用户名发送给对方。如何??我无法将第一个用户连接的用户名发送给在第一个用户之后连接的第二个用户。

但是当另一个用户连接并加入同一个房间时,它能够将其详细信息发送到连接的套接字。但是这个socket并不能得到这个socket之前连接的socket的详细信息,这是合理的,可以理解的。

有谁知道这个新连接的套接字将如何使用 passport.socketio 获取连接的套接字的用户名?