token登录验证拦截器实现登陆

本文介绍了使用JWT实现Token认证登录的过程,包括用户发送请求、服务器验证、返回签名Token、客户端保存及携带Token访问API、服务器端验证Token等步骤。提供了一套包括token工具类、拦截器配置和登录控制器的简单示例代码。
摘要由CSDN通过智能技术生成

Token认证登录(原创有效)

大体认证过程:
1.用户通过用户名和密码发送请求。
2.服务器端程序验证。
3.服务器端程序返回一个带签名的token 给客户端。
4.客户端储存token,并且每次访问API都携带Token到服务器端的。
5.服务端验证token,校验成功则返回请求数据,校验失败则返回错误码。

上代码…

token工具类

package com.jk.dup.util;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.algorithms.Algorithm;
import com.auth0.jwt.exceptions.JWTDecodeException;
import com.auth0.jwt.interfaces.DecodedJWT;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author: DACHUI
 * @Date: 2021/3/7 15:17
 * @Description:
 */
public class TokenUtils {
   
    //设置过期时间
    private static final long EXPIRE_DATE=60 * 60 * 1000;
    //token秘钥
    private static final String TOKEN_SECRET = "r54eg5sae4r665ser54rg";

    //实现签名方法
    public static String getToken (String username,String password){
   

        String token = "";
        try {
   
            //这里将useName 和 password 存入了Token,在下面的解析中,也会有解析的方法可以获取到Token里面的数据
            //Token过期的时间
            //过期时间
            Date date = new Date(System.currentTimeMillis()+EXPIRE_DATE);
            //秘钥及加密算法
            Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET);
            //设置头部信息,类型以及签名所用的算法
            Map<String,Object> header = new HashMap<>();
            header.put("typ","JWT");
            header.put("alg","HS256");
            //携带username,password信息,存入token,生成签名
            token = JWT.create()
                    .withHeader(header)
                    //存储自己想要留给前端的内容
                    .withClaim("username",username)
                    .withClaim("password",password).withExpiresAt(date)
                    .sign(algorithm);
        }catch (Exception e){
   
            e.printStackTrace();
            return  null;
        }
        return token;
    
  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值