JWT令牌

今天继续学习Springboot的项目实战

今天了解了一下,如何在自己登陆后,还能让界面知道是谁在进行操作,这个功能的实现需要JWT令牌的作用

我简单说一下我自己对令牌工作原理:当我们登录的时候会生成一个令牌,后端服务器将这个令牌给服务器,服务器会一直携带这它,当我们进行其他行为的访问的时候,会一直携带这令牌,并对它进行验证,当验证通过时才能进行接下来的操作。

我们需要先引入一个JWT依赖

1 <!--      java-JWT坐标-->
2       <dependency>
3           <groupId>com.auth0</groupId>
4           <artifactId>java-jwt</artifactId>
5           <version>4.4.0</version>
6       </dependency>

然后需要一个工具类来得到和分析token

package com.itheima.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtil {

    private static final String KEY = "itheima";
    
    //接收业务数据,生成token并返回
    public static String genToken(Map<String, Object> claims) {
        return JWT.create()
                .withClaim("claims", claims)
                .withExpiresAt(new Date(System.currentTimeMillis() + 1000 * 60 * 60 * 12))
                .sign(Algorithm.HMAC256(KEY));
    }

    //接收token,验证token,并返回业务数据
    public static Map<String, Object> parseToken(String token) {
        return JWT.require(Algorithm.HMAC256(KEY))
                .build()
                .verify(token)
                .getClaim("claims")
                .asMap();
    }

}

 

posted @ 2024-07-07 17:24  新晋软工小白  阅读(28)  评论(0)    收藏  举报