Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在初始连接的授权标头中将JWT传递给Node.js WebSocket大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在设置Node.js服务器以与WebSockets通信到我的Web应用程序.我计划使用JSON Web令牌来限制只有已经使用我们的webapp进行身份验证的用户的访问权限.在研究时,我很难找到Node.js的WebSocket包,它支持Authorization标头的客户端设置并在初始连接调用时使用它?

我经常看到通过查询参数传递令牌的建议,这可能不如通过Authorization标头传递令牌更安全.我错过了什么吗?是否有任何良好,维护良好的WebSocket库允许设置Authorization标头客户端,以便我可以阻止与服务器的不必要的连接?

解决方法

基于浏览器的WebSocket API does not make it possible to specify HTTP headers.另一方面,查询参数方法有效并且不是那么糟糕(当通过httpS使用时),因此经常使用它.

尽管Node.js的WebSocket实现可以指定http头,但这仅在Node.js中运行客户端时有效.在浏览器中运行时它不起作用.

Einaros’ws就是这样一个例子.在Node.js中运行时,通过Authorization标头传递JWT令牌很简单:

var WebSocket = require("ws");

' does not work in browsers
var token = "@R_801_9363@ce_this_with_your_JWT_token";
var options = {
    headers: {
        "Authorization" : "JWT " + token
    }
};

var ws = new WebSocket("wss://example.com/path",options);
...

但是当从Browserify使用时,要求ws只返回无法传递自定义标头的普通基于浏览器的WebSocket API.除非Web浏览器添加对传递标头的支持,否则通过查询参数传递是可行的方法.

大佬总结

以上是大佬教程为你收集整理的在初始连接的授权标头中将JWT传递给Node.js WebSocket全部内容,希望文章能够帮你解决在初始连接的授权标头中将JWT传递给Node.js WebSocket所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。