java token 登陆验证失败_java基于token验证之登陆验证

本文介绍了使用Java和JWT进行登录验证的流程,包括Token的生成、验证和刷新。通过创建JWT工具类,设置Token的过期时间和秘钥,利用拦截器检查请求中的Token并处理过期情况。
摘要由CSDN通过智能技术生成

对于前后端分离的项目来说session来判断是否登陆实现比较困难,token是比较好的方式。

大概流程:

1.用户登陆,若成功则后台生成一个token,并把此token返回给客户端浏览器

2.客户端接收到token后,每次请求都要把此token放到header中发给后段

3.后段使用拦截器判断token的正确性和实效性。

以下是具体代码:

Token工具类:

package com.zsd.analyst.util;

import io.jsonwebtoken.Claims;

import io.jsonwebtoken.Jwts;

import io.jsonwebtoken.SignatureAlgorithm;

import java.io.Serializable;

import java.util.Date;

import java.util.HashMap;

import java.util.Map;

/**

* JWT工具类

*

* @author SuperMu

* @Date: 2018/8/17 15:26

*/

public class JwtTokenUtil implements Serializable {

private static final long serialVersionUID = 6065288623015212853L;

private static final String CLAIM_KEY_CREATED = "created";

private static final String CLAIM_KEY_ID = "jti";

//#过期时间(秒) 目前有效期为10天

private static final long expiration = 15 * 60 * 1000;

/**

* token秘钥,请勿泄露,请勿随便修改

*/

private static final String secret = "JCKLJSDToasdlfj";

/**

* 从数据声明生成令牌

*

* @param claims 数据声明

* @return 令牌

*/

private static String generateToken(Map claims) {

Date expirationDate = new Date(System.currentTimeMillis() + expiration * 1000L);

return Jwts.builder().setClaims(claims).setExpiration(expirationDate).signWith(SignatureAlgorithm.HS512, secret).compact();

}

/**

* 从令牌中获取数据声明

*

* @param token 令牌

* @return 数据声明

*/

private static Claims getClaimsFromToken(String token) {

Claims claims;

tr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值