权限认证-单点登录JWT

本文介绍了JWT(JSON Web Token)的基础概念,重点阐述了其在授权和信息交换中的应用,以及如何通过HMAC256算法生成和验证JWT。示例代码展示了如何使用com.auth0.jwt库进行JWT操作。
摘要由CSDN通过智能技术生成

JWT简介:

官网:https://jwt.io/introduction/

  • JWT简称JSON Web Token,也就是通过JSON形式作为Web应用中的令牌,用于在各方之间安全地将信息作为,JSON对像传输,在数据传输。在数据传输过程中可以完成数据加密,签名等相关处理。

JWT能做什么

1、授权

  • 这时使用JWT的最常见方案,每个后续请求将包括JWT,从而允许用户访问该令牌允许的路由,服务和资源,单点登录当今广泛使用JWT的一项功能,因为它的开销很小并且在不同的域中轻松使用。

2、信息交换

  • JSON WEB Token是在各方之间安全地传输信息的好方法,因为可以对JWT进行签名(例如,使用公钥/私钥对),所以您可以确保发件人是他们所说的人,此外,由于签名是使用标头和有效负载计算的,因此您还可以验证内容是否遭到篡改。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package com.example.demo2.util;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTCreator;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.interfaces.DecodedJWT;

import java.util.Calendar;
import java.util.Map;

public class JWTUtils {
    private static String TOKEN="token!Q@W3e4r";
    /**
     *生成token
     * @param map   //传入payload
     * @return  返回token
     */
    public static String getToken(Map<String,String> map){
        JWTCreator.Builder builder= JWT.create();
        map.forEach((k,v)->{
            builder.withClaim(k,v);
        });
        Calendar instance = Calendar.getInstance();
        instance.add(Calendar.SECOND,7);
        builder.withExpiresAt(instance.getTime());
        return builder.sign(Algorithm.HMAC256(TOKEN)).toString();
    }
    /**
     * 验证token
     * @param token
     * @return
     */
    public static void verify(String token){
        JWT.require(Algorithm.HMAC256(TOKEN)).build().verify(token);
    }
    /**
     * 获取token中payload
     * @param token
     * @return
     */
    public static DecodedJWT getToken(String token){
        return JWT.require(Algorithm.HMAC256(TOKEN)).build().verify(token);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值