前言:
在现代的Web应用开发中,前后端分离架构逐渐成为主流。而在这样架构下,安全性就显得尤为重要,尤其是用户登录验证的实现。JWT(JSON Web Token)凭借其无状态、跨语言支持等特性,成为了非常流行的登录验证方案。今天,我们将详细介绍如何在Spring Boot和Vue组合的项目中,通过JWT和拦截器来实现登录验证功能,确保只有登录成功的用户才能访问相应的后台资源。
具体操作:
一、后端:SpringBoot配置jjwt依赖
1.1、添加依赖
首先,需要在pom.xml文件中添加 jjwt 和一些其他的依赖
<!-- jwt令牌-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- json快速转换-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.49</version>
</dependency>
1.2、JWT工具类
创建一个JwtUtils工具类,用来生成和解析token
ps:其中这里面保存的密钥和有效时间可以在application.properties中保存,并创建一个类获得这些数据便于调用
public class JwtUtils {
private static String signKey = "xctest";
private static Long expire = 43200000L;
/**
* 生成JWT令牌
* @param claims JWT第二部分负载 payload 中存储的内容
* @return
*/
public static String generateJwt(Map<String, Object> claims){
String jwt = Jwts.builder()
.addClaims(claims)
.signWith(SignatureAlgorithm.HS256, signKey)
.setExpiration(new Date(System.currentTimeMillis() + expire))
.compact();
return jwt;
}
/**
* 解析JWT令牌
* @param jwt JWT令牌
* @return JWT第二部分负载 payload 中存储的内容
*/
public static Claims parseJWT(String jwt){
Claims claims = Jwts.parser()
.setSigningKey(signKey)
.parseClaimsJws(jwt)