之前的2篇都是讲的如何使用websocket,忽略了关于token方面的问题。下面就归纳一下。
参考:
https://blog.csdn.net/maomaolaoshi/article/details/82593106
https://blog.csdn.net/supergao222/article/details/80115609
https://www.cnblogs.com/haitao-fan/p/8597997.html
stomp的方式如何添加token
这里就不讲页面如何获取到token的了,方式很多,假设页面已经有一个token了。
参考我之前文章中的代码,chat4页面,socket在连接的时候可以传递参数,之前我们是直接传递的当前登录的用户username,其实也可以传递其他参数,比如token。
client.connect({
username: username,
token:'我是token'
}
token的获取,和username的同理WebSocketHandleInterceptor
中:
public Message<?> preSend(Message<?> message, MessageChannel channel) {
System.out.println("----------------------:");
StompHeaderAccessor accessor = MessageHeaderAccessor.getAccessor(message, StompHeaderAccessor.class);
if (StompCommand.CONNECT.equals(accessor.getCommand())) {
// // 获取username
Object raw = message.getHeaders().get(SimpMessageHeaderAccessor.NATIVE_HEADERS);
if (raw instanceof Map) {
System.out.println(raw);
}
System.out.println(">>>>>>>>>>>>>>");
String username = accessor.getFirstNativeHeader("username");
String token = accessor.getFirstNativeHeader("token");
System.out.println("token:" + token)