WebSocket的OAuth2身份验证:通过子目录传递承载令牌?

WebSocket的OAuth2身份验证:通过子目录传递承载令牌?,websocket,oauth-2.0,Websocket,Oauth 2.0,我试图找出最好的方法是将oauth承载令牌传递给websocket端点 ,, 但是,这种方法具有通过URL进行身份验证的所有缺点。讨论的安全影响 因此,我想知道使用子程序将令牌传递给服务器会有什么缺点?i、 e.而不是将请求的子目录作为常量列表处理。至少发送一个符合以下语法的子程序,例如:authorization bearer- 令牌最终将出现在请求头中。 在处理子脚本时,服务器可以通过一些自定义代码轻松地查找和处理令牌。 由于传递子目录应该得到很多websocket实现的支持,这应该适用于很

我试图找出最好的方法是将oauth承载令牌传递给websocket端点

,, 但是,这种方法具有通过URL进行身份验证的所有缺点。讨论的安全影响

因此,我想知道使用子程序将令牌传递给服务器会有什么缺点?i、 e.而不是将请求的子目录作为常量列表处理。至少发送一个符合以下语法的子程序,例如:
authorization bearer-

令牌最终将出现在请求头中。 在处理子脚本时,服务器可以通过一些自定义代码轻松地查找和处理令牌。
由于传递子目录应该得到很多websocket实现的支持,这应该适用于很多客户端。

这对我来说很有效,我使用了这个

您需要通过Websocket头发送OAUTH令牌,下面是代码,希望对您有所帮助

ws = factory.createSocket("wss://yourcompleteendpointURL/");
ws.addHeader("Authorization", "Bearer <yourOAUTHtoken>");
ws.addHeader("Upgrade", "websocket");
ws.addHeader("Connection", "Upgrade");
ws.addHeader("Host", "<YourhostURLasabovegiveupto.com>");
ws.addHeader("Sec-WebSocket-Key", "<Somerandomkey>");
ws.addHeader("Sec-WebSocket-Version", "13");
ws.connect();
ws=factory.createSocket(“wss://yourcompleteendpointURL/");
ws.addHeader(“授权”、“持有人”);
addHeader(“升级”、“websocket”);
ws.addHeader(“连接”、“升级”);
ws.addHeader(“主机”,“主机”);
addHeader(“Sec WebSocket键,”);
addHeader(“Sec WebSocket版本”,“13”);
ws.connect();

这个想法非常有趣。有谁能对这一点进行更深入的评论吗?我在这个项目中发现了另一种方法:语法略有不同:
Sec-Websocket协议:Bearer,foobar
意思是
授权:Bearer-foobar