如何在 websocket javascript 客户端中传递授权承载访问令牌

Jan*_*ier 5 javascript java authorization websocket socket.io

我的 API 管理器工具要求我应该通过 websocket 调用传递授权承载访问令牌。他们在其中提供了 Java 代码示例。

不记名令牌设置为 ("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f") 。我如何在 javascript 中做到这一点?

// HttpResponseDecoder to WebSocketHttpResponseDecoder in the pipeline.
final WebSocketClientHandler handler = new WebSocketClientHandler(
    WebSocketClientHandshakerFactory
        .newHandshaker(uri, WebSocketVersion.V13, null, 
            false, new DefaultHttpHeaders()
                .add("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f"))); 
Run Code Online (Sandbox Code Playgroud)

这就是他们在 java 中的做法 有没有办法从我的 java 脚本 [Angular2] Web 应用程序中做到这一点?我如何从 UI 传递这个?任何基于 Websocket 的测试工具都可以模拟这一点?

Ele*_*Ele 6

我在这里找到了这个答案: https ://stackoverflow.com/a/26123316/1715121

“由于 Javascript WebSocket API 的设计,现在不可能使用 Authentication 标头。更多信息可以在此线程中找到: HTTP headers in Websockets client API

但是,承载身份验证类型允许名为“access_token”的请求参数:http://self-issued.info/docs/draft-ietf-oauth-v2-bearer.html#query-param 此方法与 websocket 连接兼容。