JWT结合Spring boot实现SSO单点登录

本文介绍了如何结合JWT和Spring Boot实现SSO单点登录。首先讲解了JWTUtils工具类的创建,然后阐述了用户首次访问时的数据库验证过程,以及验证通过后服务端生成JWT Token。接着详细说明了拦截器的实现,用于验签并处理异常。最后,通过测试展示了未携带token、首次登录获取token以及携带token访问的情况。
摘要由CSDN通过智能技术生成

JWT的使用

参考教程: JWT认证原理、流程整合springboot实战应用,前后端分离认证的解决方案!

创建JWTUtils工具类

@Component
public class JWTUtils {
   
    private  static final String salt = "!hfuw3y*&";

    /**
     * 生成token
     * @param map 传入的参数 如用户名,用户id等信息
     * @return
     */
    public static String getToken(Map<String,String> map){
   
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.DATE,7);//默认7天过期
        //创建jwt builder
        JWTCreator.Builder builder = JWT.create();
        //payload
        map.forEach((k,v)->{
   
            builder.withClaim(k,v);
        });
        //签名并设置过期时间
        String token = builder.withExpiresAt(instance.getTime())
                .sign(Algorithm.HMAC256(salt));
        return token;
    }


    /**
     * 验证合法性并获取token信息,如果非法则直接抛异常
     * @param token
     * @return
     */
    public static DecodedJWT verifyToken(String token){
   
        DecodedJWT verify = JWT.require(Algorithm.HMAC256(salt)).build().verify(token);
        return verify;
    }

    /**
     * 从jwt中获取userId
     */
    public static String getUserIdFromToken(String token){
   
        DecodedJWT verify = JWT.require(Algorithm.HMAC256(salt)).build().verify(token
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值