Springboot集成JWT

x33g5p2x  于2022-04-10 转载在 Spring  
字(1.1k)|赞(0)|评价(0)|浏览(298)

1:首先导入依赖:

<!--JWT工具-->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.10.3</version>
        </dependency>

2:写一个设置Token的工具类:

package com.ftz.springboot.utils;

import cn.hutool.core.date.DateUtil;
import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;

public class TokenUtils {

    /**
     * 生成token
     *
     * @return
     */
    public static String genToken(String userId, String sign) {
        return JWT.create().withAudience(userId) // 将 user id 保存到 token 里面,作为载荷
                .withExpiresAt(DateUtil.offsetHour(new Date(), 2)) // 2小时后token过期
                .sign(Algorithm.HMAC256(sign)); // 以 password 作为 token 的密钥
    }


}

我们在这里将userid传入作为载荷,password作为密钥

3:在登陆的时候加入:

4:vue前端加入校验:

// request 拦截器
// 可以自请求发送前对请求做一些处理
// 比如统一加token,对请求参数统一加密
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=utf-8';
   let user =    localStorage.getItem("user") ? JSON.parse(localStorage.getItem("user")) : {}

    if (user){
        config.headers['token'] = user.token;  // 设置请求头
    }

    return config
}, error => {
    return Promise.reject(error)
});

前端界面存储:有了user对象

相关文章