你真的了解token续期嘛?
Spring Boot + Vue中的Token续签机制
在现代的全栈应用开发中,Spring Boot作为后端框架和Vue.js作为前端框架的组合非常流行。在这种架构中实现Token续签是保障应用安全的关键部分。本文旨在提供一个基于Spring Boot和Vue的长短Token续签示例。
1. Spring Boot后端
1.1 长Token的生成
在Spring Boot中,我们首先需要一个方法来生成JWT Token。这里我们使用jjwt库。
引入依赖
在pom.xml文件中加入以下依赖:
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
生成Token
创建一个服务JwtTokenService来生成和解析Token。
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
@Service
public class JwtTokenService {
private String secretKey = "your_secret_key";
public String generateLongToken(String username) {
long expiration = 7 * 24 * 60 * 60 * 1000; // 7 days
return Jwts.builder()
.setSubject(username)
.setExpiration(new Date(System.currentTimeMillis() + expiration))
.signWith(SignatureAlgorithm.HS256, secretKey)
.compact();
}
// ... 其他方法 ...
}
1.2 短Token的生成
短Token的生成方式类似,只是过期时间较短。
public String generateShortToken(String username) {
long expiration = 15 * 60 * 1000; // 15 minutes
return Jwts.builder()
.setSubject(username)
.setExpiration(new Date(System.currentTimeMillis() + expiration))
.signWith(SignatureAlgorithm.HS256, secretKey)
.compact();
}
1.3 Token续签
当用户进行操作时,可以根据需要续签Token。
public String renewToken(String oldToken) {
// 解析旧Token获取用户名
String username = Jwts.parser()
.setSigningKey(secretKey)
.parseClaimsJws(oldToken)
.getBody()
.getSubject();
// 生成新的短Token
return generateShortToken(username);
}
2. Vue前端
在Vue应用中,我们需要确保每次发送请求时附加Token,并在需要时更新Token。
2.1 设置Axios拦截器
在Vue项目中,我们使用Axios来发送HTTP请求。通过设置拦截器,我们可以在每个请求中自动添加Token。
import axios from 'axios';
axios.interceptors.request.use(
config => {
const token = localStorage.getItem('token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
},
error => {
return Promise.reject(error);
}
);
你真的了解token续期嘛?的更多相关文章
- 聊聊 OAuth 2.0 的 Token 续期处理
Token 校验逻辑 // CheckTokenEndpoint.checkToken @RequestMapping(value = "/oauth/check_token") ...
- 关于Token和Cookie做权限校验的区别及Token自动续期方案
title: 关于Token和Cookie做权限校验的区别及Token自动续期方案 categories: 后端 tags: - .NET Token和Cookie的区别 首先,要知道一些基本概念:h ...
- Token:服务端身份验证的流行方案【转】
01- 身份认证 服务端提供资源给客户端,但是某些资源是有条件的.所以服务端要能够识别请求者的身份,然后再判断所请求的资源是否可以给请求者. token是一种身份验证的机制,初始时用户提交账号数据给服 ...
- .net core webapi jwt 更为清爽的认证 ,续期很简单(2)
.net core webapi jwt 更为清爽的认证 后续:续期以及设置Token过期 续期: 续期的操作是在中间件中进行的,续期本身包括了前一个Token的过期加发放新的Token,所以在说续 ...
- Token:服务端身份验证的流行方案
01- 身份认证 服务端提供资源给客户端,但是某些资源是有条件的.所以服务端要能够识别请求者的身份,然后再判断所请求的资源是否可以给请求者. token是一种身份验证的机制,初始时用户提交账号数据给服 ...
- OAuth2.0 知多少
1. 引言 周末逛简书,看了一篇写的极好的文章,点击大红心点赞,就直接给我跳转到登录界面了,原来点赞是需要登录的. 可是没有我并没有简书账号,一直使用的QQ的集成登录.下面有一排社交登录按钮,我们可以 ...
- OAuth2.0 知多少(好)
https://www.cnblogs.com/sheng-jie/p/6564520.html 简书集成的社交登录,大大简化了我们的注册登录流程,真是一号在手上网无忧啊.这看似简单的集成,但背后的技 ...
- 基于Shiro,JWT实现微信小程序登录完整例子
小程序官方流程图如下,官方地址 : https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html ...
- 使用Shiro+JWT完成的微信小程序的登录(含讲解)
使用Shiro+JWT完成的微信小程序的登录 源码地址https://github.com/Jirath-Liu/shiro-jwt-wx 微信小程序用户登陆,完整流程可参考下面官方地址,本例中是按此 ...
- 基于 Spring Security 的前后端分离的权限控制系统
话不多说,入正题.一个简单的权限控制系统需要考虑的问题如下: 权限如何加载 权限匹配规则 登录 1. 引入maven依赖 1 <?xml version="1.0" enc ...
随机推荐
- WebViewJavascriptBridge.js代码学习
//notation: js file can only use this kind of comments //since comments will cause error when use in ...
- STL deque容器
deque - 双向队列 1.队列的基本知识 队列的基本特性就是先进先出(FIFO),也就是第一个进去的元素第一个出来.即队列就是一个只允许在一端进行插入,在另一端进行删除操作的线性表.Queue接口 ...
- CentOS 7替换默认软件源
安装CentOS 7后,默认源在国外,可以替换为国内的源以提升访问速度 参考https://mirrors.ustc.edu.cn/help/centos.html sudo vi /etc/yum. ...
- LeetCode-Java:122. 买卖股票的最佳时机Ⅱ
题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格. 在每一天,你可以决定是否购买和/或出售股票.你在任何时候 最多 只能持有 一股 股票.你也可以先购买, ...
- vue的响应式原理:依赖追踪
在明白原理之前,我们有很多表面现象.使用场景需要记忆.明白了原理后,你会发现它们已经不需要记了,因为从原理出发,你自己都能把它们推导出来,一切是那么的自然而然.感觉就是:这还用记吗?很明显嘛! 之前我 ...
- 华企盾DSC手机app注册保存成功登录时一直转圈
可能是花生壳等映射软件不稳定,重启一下花生壳等工具
- ElasticSearch之Index modules
索引的参数,分为两类: 静态参数,仅支持在创建索引时指定,或者关闭索引后指定. 动态参数,允许在索引工作期间指定或者修改. 静态参数 index.number_of_shards 默认值为1. 本参数 ...
- 设计模式之设计模式概述-shejimoshigaishu
title: 设计模式之设计模式概述 date: 2022-12-04 00:21:18.469 updated: 2022-12-11 23:03:45.617 url: https://www.y ...
- 关于windows激活程序的木马病毒分析及处置方法
客户电脑中毒,锁定几个病毒进程.EDR杀毒.木马专杀工具无法处置,该现象是和深信服外网AF防火墙联动后发现的行为,EDR无感知. 该病毒特征为,每日早上用户开机,均检查到外链du.testjj.com ...
- Pikachu漏洞靶场 XSS(跨站脚本攻击)
XSS 关于xss的我也是一知半解,所以只放出payload来. 反射型xss(get) 修改maxlength属性之后提交如下内容: <script>alert(/xss/);</ ...