spring-boot - SockJS 在握手时没有设置 Bearer 授权令牌
问题描述
我有一个 spring boot + angularjs 应用程序,我将它配置为具有套接字连接。这是我在 angularjs 中的套接字控制器:
function SocketController($timeout, localStorageService) {
var vm = this;
var accessToken = localStorageService.get('accessToken');
var stompClient;
// i can see valid value of token in console
console.log(accessToken)
if (accessToken) {
var socket = new SockJS('/looping',
null,
{
transports: ['xhr-streaming'],
headers: {'Authorization': 'Bearer ' + accessToken}
});
stompClient = Stomp.over(socket);
stompClient.connect({"X-Authorization": "Bearer " + accessToken}, function (frame) {
console.log('Connected: ' + frame);
stompClient.subscribe('/topic/loops', function (message) {
console.log(message);
});
});
} else {
console.log("token expired");
}
function sendEvent(loopId, value) {
if (stompClient != null) {
stompClient.send("/topic/loops", {}, JSON.stringify({'loopId': new Date(), 'value': 'hey silver'}));
}
}
function disconnect() {
if (stompClient !== null) {
stompClient.disconnect();
stompClient = null;
}
console.log("Disconnected");
}
}
现在,问题是当我在 firefox devtools 中检查请求标头时,没有设置授权标头,如下所示:
我怎么解决这个问题?我是套接字的新手。
更新
当我使用 firefox devtools 编辑请求并Authorization
在请求标头中设置标头时,收到带有 200 状态代码的响应,但响应内容在 index.html 的 html 中!
解决方案
推荐阅读
- qt - 如何在同一设备上分别处理两个鼠标?
- python - 如何在 python 中使用 Scrapy 抓取网站以获取网站中的所有链接?
- java - 如何从以前缀开头的表中选择值
- python - 从具有固定行号的数据帧中子集数据帧
- uart - 如何在 ESP32 UART Rx PORT 上一次接收更多数据(大于,>128)?
- angular - 应用程序没有显示对话框,我的应用程序将对话框显示为页面上的组件
- java - Spring Security - 401 Unauthorized for token end point (/oauth/token)
- php - PHP Apache .htaccess URL 重写多个变量
- r - 如何计算周末天数
- generics - Kotlin - “where”通用约束的问题