Spring Security 6 JWT身份验证

1 .概述

  • 基于JWT 实现身份认证和授权,是当前流行的一种技术解决方案。
  • 使用这种方案,要求用户先发来用户名与密码,当用户名与密码校验通过时,服务器端返回一个JWT给客户端。
  • 客户端拿到JWT之后,将其放到HTTP 请求名为Authorization的Header 中,随后继请求一起发给服务端
  • 服务端先校验JWT的有效性,有效之后,开放资源给客户端访问。

2. Token

  • Token 是一种有着特定含义的短小的字符串
  • 在Web开发中,Token 通常由WebServer 端生成,“颁发”给客户端,这些Token通常保存由一些比较重要的信息,客户端在发出HTTP请求时,通常要求在HTTP Header 中放置这些Token供Server 端处理。
  • 为了保证安全性,Token 通常被编码和签名,并且拥有一个特定的“生存期”,过期的Token会被废弃。

3. 实战

(1) 添加项目依赖
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
            <version>0.11.5</version>
        </dependency>

        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>0.11.5</version>
        </dependency>

        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId>
            <version>0.11.5</version>
        </dependency>
(2) 定义常量
public interface SecurityConstants {
   

    public static final String JWT_KEY="这是我的一个私有密钥,用于生成JWT";
    //设置放在HTTP请求Header的名字
    public static final String JWT_HEADER="Authorization";
}
(3) 生成JWT
public class JWTUtils {
   
    public static String generateJWT(){
   
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
        if(authentication != null
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值