栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2021-09-30 JWT面试

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-09-30 JWT面试

Java JWT

package com.lrm;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;
import jdk.internal.dynalink.beans.StaticClass;

import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

public class JWTUtils {
    private static final String SING = "ldjfklajsfjas";

    public static void main(String[] args) {
        HashMap hashMap = new HashMap<>();
        hashMap.put("username","hyf");
        String token = JWTUtils.getToken(hashMap);
        JWTUtils.verify(token);
        System.out.println(JWTUtils.getTokenInfo(token).getToken());
    }

    
    public static String getToken(Map 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(SING));
        return token;
    }

    
    public static void verify(String token){
        JWT.require(Algorithm.HMAC256(SING)).build().verify(token);  //这一行代码就可以起到验证的作用,因为在验证不匹配时它自动会抛出异常
    }

    
    public static DecodedJWT getTokenInfo(String token){
        DecodedJWT verify = JWT.require(Algorithm.HMAC256(SING)).build().verify(token);
        return verify;
    }
}






单体项目在拦截器中做Token鉴权
分布式项目在网关中做Token鉴权
token生成放redis里

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282357.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号