栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot+vue(h5)实现拦截器+JWT用户信息验证的完整步骤

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot+vue(h5)实现拦截器+JWT用户信息验证的完整步骤

前言:

jwt工具类见文章底部
用户登录成功后会生成1个token,返回到客户端,然后存到localstroage里。然后当用户进入接下来的页面后,会有拦截器拦截,判断客户端有无token,然后校验放行。替代了以往session+cookie的做法。
源码:https://gitee.com/web-paul/online_class

前端代码(vue):

1、登录成功后存储后端传过来的token

关于store的操作(具体可看我的vue栏文章)

2、然后在接下来需要用户验证的页面,都用token验证即可
(store取值传参)(后端接到后拦截器会在controller层之前进行校验)


ps:h5的话用ajax传

后端代码(springboot):

1、下面两个负责收到token 进行校验拦截

首先在这里取到token,进行校验,如果正确将取到的用户id放到requset里

然后拦截器设置一下就可以了

附JWT工具类:

package net.xdclass.online_xdclass.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import net.xdclass.online_xdclass.model.entity.User;

import java.util.Date;


public class JWTUtils {


    
    private  static final long EXPIRE = 60000 * 60 * 24 * 7;
    //private  static final long EXPIRE = 1;


    
    private  static final String SECRET = "xdclass.net168";


    
    private  static final String TOKEN_PREFIX = "xdclass";


    
    private  static final String SUBJECT = "xdclass";


    
    public static String geneJsonWebToken(User user){

        String token = Jwts.builder().setSubject(SUBJECT)
                .claim("head_img",user.getHeadImg())
                .claim("id",user.getId())
                .claim("name",user.getName())
                .setIssuedAt(new Date())
                .setExpiration(new Date(System.currentTimeMillis() + EXPIRE))
                .signWith(SignatureAlgorithm.HS256,SECRET).compact();

        token = TOKEN_PREFIX + token;


        return token;
    }


    
    public static Claims checkJWT(String token){

        try{

            final  Claims claims = Jwts.parser().setSigningKey(SECRET)
                    .parseClaimsJws(token.replace(TOKEN_PREFIX,"")).getBody();

            return claims;

        }catch (Exception e){
            return null;
        }

    }



}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号