JWT认证方式的实现

JWT(Json Web Token)是一种流行的无状态认证方式。本文详细介绍了JWT的实现过程,包括基本流程、依赖、生成与校验token,以及处理token过期的策略。在服务器验证用户登录后生成token,客户端在后续请求中携带token进行身份验证。当token过期或用户登出时,一种解决方案是使用redis创建黑名单来标记废弃的token,以确保安全性。
摘要由CSDN通过智能技术生成

JWT全称Json Web Token, 是当今较为流行的一种认证方式。相比于传统的session认证方式,jwt在设计之初便强调“无状态”,即服务端不会存储任何的认证信息,只扮演一个签发令牌的角色。
本文着重阐述一下具体的实现方法。

基本流程

1,首先在服务器收到登录的请求时,会检查请求头中是否含有令牌(显而易见的是,首次登录必然没有)。服务器会在验证账号密码都通过的情况下,生成一个token(即令牌),添加到响应头中返回给客户端。
2,客户端在收到token之后,之后的每一个请求都需要在请求header中带上这个token用以验证身份。
3,当token失效时,服务器通知客户端令牌过期,重新发送登录请求获取新的token。

需要的依赖

<dependency>
	<groupId>com.auth0</groupId>
	<artifactId>java-jwt</artifactId>
	<version>3.1.0</version>
</dependency>

生成token

public static String getToken(final String userId,final String role) {
        String token = null;
        try {
            Long currentTime = System.currentTimeMillis();
            String tokenId = new String
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值