springboot2.0+websocket集成-关于token

本文总结了在SpringBoot2.0项目中,如何在WebSocket中集成token验证。介绍了通过STOMP和WebSocket两种方式添加token的方法,包括URL传参、Sec-WebSocket-Protocol子协议以及通过send发送token的实现细节。
摘要由CSDN通过智能技术生成

之前的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)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值