精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

接口不掉線,用戶不登出!SpringBoot 無感刷新 Token 全解析

開發(fā) 前端
實現(xiàn)無感刷新 Token,是用戶體驗與安全性協(xié)同優(yōu)化的重要實踐。通過后端智能判斷與前端攔截配合,結(jié)合雙 Token 模式或動態(tài)續(xù)簽機制。

在現(xiàn)代 Web 系統(tǒng)中,用戶體驗與安全性的平衡是后端開發(fā)的核心命題。本文將基于實際業(yè)務(wù)場景,全面剖析如何借助 Spring Boot 實現(xiàn)“用戶在線不中斷,身份自動續(xù)簽”的無感刷新 Token 機制,并結(jié)合前后端聯(lián)動,構(gòu)建完整的 Token 生命周期管理方案。

背景問題:為什么需要無感刷新?

想象這樣一個場景:

“我正在后臺管理系統(tǒng)中錄入數(shù)據(jù),頁面突然跳轉(zhuǎn)回登錄界面,之前填寫的內(nèi)容全沒了!”

這是典型的 Token 到期導致會話失效 的問題,尤其在使用 Redis 等緩存中間件存儲 Token 時尤為常見。

問題根源

后端通常通過 JWT 來實現(xiàn)無狀態(tài)身份驗證,但 JWT 的缺陷也很明顯:過期即失效,無法修改或撤銷。如果不設(shè)計 Token 刷新機制,用戶體驗將大打折扣。

核心策略:Token 無感續(xù)簽方案概述

方案一:后端自動續(xù)期(推薦)

在每次用戶請求時,后端檢查當前 Token 的有效時間:

  • 若臨近過期(如小于5分鐘),則動態(tài)生成一個新 Token,加入響應(yīng)頭中返回;
  • 前端攔截響應(yīng)頭,若發(fā)現(xiàn)新的 Token,與本地不一致則自動更新本地 Token。

方案二:前端主動續(xù)簽(補充方案)

  • 前端維護一對 Token:access_token(短期)+ refresh_token(長期);
  • 每隔一段時間,前端使用 refresh_token 去調(diào)用刷新接口,獲取新的 access_token

后端實現(xiàn)細節(jié)

依賴配置(pom.xml)

<dependencies>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.5.1</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.33</version>
    </dependency>
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>0.9.1</version>
    </dependency>
</dependencies>

JWT 工具類 JwtUtil.java

 代碼路徑:/src/main/java/com/icoderoad/auth/utils/JwtUtil.java

package com.icoderoad.auth.utils;


import io.jsonwebtoken.*;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.*;


public class JwtUtil {
    public static final long JWT_TTL = 1000L * 60 * 60 * 24; // 24小時
    public static final String JWT_KEY = "qx";


    public static String createJWT(String subject) {
        return getJwtBuilder(subject, null, UUID.randomUUID().toString().replace("-", "")).compact();
    }


    public static String createJWT(String subject, Long ttlMillis) {
        return getJwtBuilder(subject, ttlMillis, UUID.randomUUID().toString()).compact();
    }


    private static JwtBuilder getJwtBuilder(String subject, Long ttlMillis, String uuid) {
        long nowMillis = System.currentTimeMillis();
        long expMillis = (ttlMillis != null ? nowMillis + ttlMillis : nowMillis + JWT_TTL);
        SecretKey secretKey = generalKey();
        return Jwts.builder()
                .setId(uuid)
                .setSubject(subject)
                .setIssuer("icoderoad")
                .setIssuedAt(new Date(nowMillis))
                .setExpiration(new Date(expMillis))
                .signWith(SignatureAlgorithm.HS256, secretKey);
    }


    public static Claims parseJWT(String jwt) throws Exception {
        return Jwts.parser()
                .setSigningKey(generalKey())
                .parseClaimsJws(jwt)
                .getBody();
    }


    public static SecretKey generalKey() {
        byte[] key = Base64.getDecoder().decode(JWT_KEY);
        return new SecretKeySpec(key, 0, key.length, "AES");
    }


    public static Date getExpiration(String jwt) {
        try {
            return parseJWT(jwt).getExpiration();
        } catch (Exception e) {
            throw new RuntimeException("Token 解析失敗", e);
        }
    }
}

Token 攔截與續(xù)簽邏輯

 攔截器路徑:/src/main/java/com/icoderoad/auth/interceptor/AuthInterceptor.java

public class AuthInterceptor implements HandlerInterceptor {


    private static final long REFRESH_THRESHOLD = 1000L * 60 * 5; // 剩余5分鐘內(nèi)刷新


    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {


        String token = request.getHeader("Authorization");
        if (StringUtils.isEmpty(token)) {
            throw new RuntimeException("未登錄");
        }


        Claims claims = JwtUtil.parseJWT(token);
        long now = System.currentTimeMillis();
        long exp = claims.getExpiration().getTime();


        if (exp - now < REFRESH_THRESHOLD) {
            String newToken = JwtUtil.createJWT(claims.getSubject());
            response.setHeader("X-Token-Refresh", newToken);
        }


        return true;
    }
}

前端處理邏輯(以 Vue + Axios 為例)

前端攔截代碼:

axios.interceptors.response.use(response => {
    const newToken = response.headers['x-token-refresh'];
    if (newToken && newToken !== localStorage.getItem('access_token')) {
        localStorage.setItem('access_token', newToken);
    }
    return response;
}, error => {
    // 處理401
    if (error.response.status === 401) {
        // 可以保存草稿后跳轉(zhuǎn)登錄
    }
    return Promise.reject(error);
});

關(guān)于 AccessToken 和 RefreshToken 的機制說明

類型

用途

特點

AccessToken

攜帶用戶身份,頻繁使用

安全風險高,需短時過期

RefreshToken

用于續(xù)簽 AccessToken

不暴露給前端,一般保存在 Cookie 或 HttpOnly

標準雙 Token 模式提升了安全性和用戶體驗,避免因 AccessToken 頻繁刷新帶來的資源浪費。

特別討論:表單靜默超時的處理策略

場景問題:

用戶長時間填寫表單,沒有發(fā)出任何請求,點擊提交時發(fā)現(xiàn) token 已失效,被重定向到登錄頁,數(shù)據(jù)全丟。

推薦方案:

  • 提交失敗后前端本地緩存表單數(shù)據(jù);
  • 登錄成功后回顯草稿,確保用戶體驗不受損;
  • 或者在用戶輸入行為時定期心跳請求,觸發(fā)后端續(xù)簽。

總結(jié)

實現(xiàn)無感刷新 Token,是用戶體驗與安全性協(xié)同優(yōu)化的重要實踐。通過后端智能判斷與前端攔截配合,結(jié)合雙 Token 模式或動態(tài)續(xù)簽機制,我們可以實現(xiàn):

用戶操作不中斷 身份憑證自動續(xù)期 安全控制粒度更靈活

責任編輯:武曉燕 來源: 路條編程
相關(guān)推薦

2025-10-30 07:30:00

JavaScript身份驗證Token

2025-08-06 07:47:22

2022-09-28 12:39:46

axios攔截器

2024-07-11 10:38:02

2009-03-06 10:01:00

802.11nWLAN

2025-01-15 09:21:01

2012-05-02 14:41:04

jQuery

2009-12-24 13:15:03

2011-09-07 13:37:40

撥號掉線

2019-10-25 20:00:06

華為

2010-10-08 12:06:40

聯(lián)動菜單JavaScript

2025-04-25 08:30:00

前端后端用戶登錄

2025-07-02 08:10:01

StarRocks物化視圖MV

2012-12-17 11:32:53

無線路由器WLAN

2025-02-10 09:20:00

LinuxScreen終端

2024-04-17 12:59:18

前端Token開發(fā)

2025-05-30 02:00:00

Spring接口限流

2018-01-17 09:44:37

LinuxUnix用戶訪問

2025-11-13 10:13:37

Kubernetes運維集群

2011-04-26 13:47:28

墨盒噴墨打印
點贊
收藏

51CTO技術(shù)棧公眾號

欧美性猛交xxxxx水多| 亚洲人成免费| 欧美日韩和欧美的一区二区| 日韩欧美一二三| 欧美日韩一区二| 91精品国产乱码久久| 在线精品视频在线观看高清| 日韩av网站在线| 美女喷白浆视频| 美女尤物在线视频| 欧美韩国日本一区| 国产精品国产亚洲精品看不卡15| 亚洲黄色免费观看| 午夜精品婷婷| 亚洲天堂av在线播放| 九九九久久久久久久| 神马电影网我不卡| 亚洲宅男天堂在线观看无病毒| 明星裸体视频一区二区| 99精品久久久久久中文字幕| 久色成人在线| 久久乐国产精品| 国产三级aaa| 婷婷综合一区| 精品国产91洋老外米糕| 91丨九色丨蝌蚪| 免费看av不卡| 午夜精品福利在线| 日韩精品一区二区三区电影| 国产色在线 com| av成人免费在线| 91久久久一线二线三线品牌| 最近中文字幕在线免费观看| 亚洲三级网站| 欧美高清视频在线| 日日骚一区二区三区| 第一会所亚洲原创| 亚洲最大在线视频| 国产手机在线观看| 日韩成人一级| 亚洲电影第1页| 一级黄色大片免费看| 欧美日本三级| 91精品国产91久久久久久最新毛片| 欧美黑人又粗又大又爽免费| 伊人成综合网站| 五月综合激情婷婷六月色窝| 国产成a人亚洲精v品在线观看| 在线观看a视频| 国产网站一区二区| 六十路精品视频| 亚洲av成人精品毛片| 国产成人av在线影院| 91久久精品国产91久久| 亚洲无码久久久久| 日av在线不卡| 国产精品久久精品| 中文字幕日韩经典| 欧美aaaaa成人免费观看视频| 欧美在线激情网| 免费视频久久久| 日韩国产在线观看一区| 国产精品劲爆视频| 91超薄丝袜肉丝一区二区| 麻豆国产精品官网| 成人春色激情网| 国产免费叼嘿网站免费| 国产精品99久久久久久久vr| 91视频婷婷| 亚洲经典一区二区三区| 99视频一区二区| 免费在线一区二区| 欧洲不卡av| 一区二区在线观看不卡| 岛国大片在线播放| 亚洲天堂导航| 欧美日韩亚洲国产综合| 中文字幕第10页| 欧美freesex8一10精品| 伊人青青综合网站| 91日韩中文字幕| 亚洲一区国产一区| 国产精品爱久久久久久久| 国产一区二区女内射| 国产成人午夜视频| 蜜桃91精品入口| www.成人.com| 亚洲最大的成人av| 大肉大捧一进一出好爽视频| 99久久久国产精品免费调教网站| 538在线一区二区精品国产| 无码人妻精品一区二区三| 女厕嘘嘘一区二区在线播放 | 亚洲av永久无码国产精品久久| 国产白丝网站精品污在线入口| 蜜桃网站成人| 自拍亚洲图区| 色噜噜久久综合| 成人免费播放视频| 国产不卡av一区二区| 久久九九热免费视频| 日韩特黄一级片| 久久精品72免费观看| 有坂深雪av一区二区精品| 视频一区三区| sqte在线播放| 欧美调教femdomvk| 中国特级黄色大片| 第一会所亚洲原创| 国内揄拍国内精品| 中文字幕在线2019| 91天堂素人约啪| 国产日韩第一页| 日本精品在线一区| 亚洲国产精品va在看黑人| 欧美一级片在线视频| 久久一日本道色综合久久| 超碰97人人在线| 欧美jizzhd欧美| 亚洲福利一区二区| 天天爽夜夜爽视频| 欧美好骚综合网| 国产成人午夜视频网址| 五月天婷婷社区| 亚洲黄色小视频| 在线看免费毛片| 成人在线免费小视频| 日韩免费高清在线观看| 天堂在线视频免费| 亚洲一区二区三区在线播放| 一级做a爱视频| 99久久99久久精品国产片桃花| 国产成人极品视频| 看电影就来5566av视频在线播放| 欧美日韩激情美女| 欧美精品欧美极品欧美激情| 亚洲视屏一区| 粉嫩精品一区二区三区在线观看| 欧洲不卡视频| 6080国产精品一区二区| 日韩激情小视频| 极品少妇一区二区三区精品视频| 亚洲欧美日韩综合一区| jizz亚洲女人高潮大叫| 一区二区欧美久久| 免费视频网站在线观看入口| 久久影院视频免费| 国产男女在线观看| 免费观看不卡av| 国产成人综合久久| 国产精品秘入口| 欧美日韩一区久久| 成年人网站在线观看视频| 久久91精品国产91久久小草| 伊人色综合久久天天五月婷| 国内欧美日韩| 乱亲女秽乱长久久久| www.国产免费| 亚洲大片一区二区三区| 欧亚乱熟女一区二区在线| 亚洲理论在线| 日本不卡一区| 亚洲欧洲专区| 欧美国产日韩精品| 色丁香婷婷综合久久| 欧美丝袜一区二区| 国产精品久久久久久久av| 久久精品国产精品亚洲红杏| 91免费视频黄| 日韩av影院| 国产精品狠色婷| 91网址在线观看| 精品国产欧美一区二区| 国产一区二区99| 国产精品久99| av不卡中文字幕| 免费亚洲网站| 一区二区三区四区五区精品| 精品国产一区二| 97在线看福利| av在线之家电影网站| 日韩欧美国产午夜精品| 日本黄色片视频| 国产精品女主播av| 免费观看一区二区三区| 免费永久网站黄欧美| 国产91av视频在线观看| 精品伊人久久久| 国产精品一二区| 超碰97国产精品人人cao| 亚洲午夜色婷婷在线| 国产免费视频一区二区三区| 欧美日韩免费一区| 国产黄色录像片| 337p粉嫩大胆色噜噜噜噜亚洲| 色呦色呦色精品| 亚洲一区日本| 日本久久久网站| 欧美日韩精品一区二区视频| 99久久久精品免费观看国产| 日韩成人高清| 国语对白做受69| 男人资源在线播放| 亚洲欧美制服中文字幕| www.精品久久| 男女精品视频| 97久久久久久| av在线麻豆| 伊人久久男人天堂| 天天操天天爱天天干| 这里只有精品99re| 精品国产www| 精品日本高清在线播放| 久久久全国免费视频| 国产精品久久久久久久久免费樱桃 | 亚洲欧洲在线观看| 国产肉体xxxx裸体784大胆| 老司机一区二区| 99re在线视频免费观看| 激情视频一区| 中国老女人av| 欧美高清视频手机在在线| 欧美中日韩一区二区三区| 黄色美女久久久| av成人午夜| 国产精品美女久久久久| 国产精品免费电影| 性欧美hd调教| 国产精品久久久久av| 人狥杂交一区欧美二区| 欧美日韩一区 二区 三区 久久精品| 亚洲一区 在线播放| 亚洲免费毛片| 久久久久高清| 日韩福利视频一区| 国产一区二区三区黄| 亚洲高清999| 99视频在线免费观看| 最新亚洲国产| 91视频88av| 日本一区精品视频| 亚洲一区二区在线| 亚洲2区在线| 成人自拍网站| 精品欧美午夜寂寞影院| 国产伦精品一区二区三区四区视频| 超碰在线97观看| 亚洲免费三区一区二区| 污污的视频在线免费观看| 中文字幕一区三区| 国产一区二区精彩视频| 亚洲欧美影音先锋| 欧美成人免费观看视频| 亚洲精品国产精华液| 久久久久99精品成人片毛片| 亚洲影视资源网| 日本熟妇成熟毛茸茸| 午夜免费久久看| www.国产com| 在线免费视频一区二区| 一区二区自拍偷拍| 欧美日韩亚洲综合在线| 日韩欧美国产成人精品免费| 欧美理伦片在线播放| 91老司机在线| av成人男女| 久久久久久久久久久久久9999| 啄木系列成人av电影| 亚洲不卡1区| 日韩欧美一区二区三区免费看| 伊甸园精品99久久久久久| 午夜久久久久| 鲁一鲁一鲁一鲁一澡| 日韩精品乱码免费| 中文字幕12页| 91亚洲国产成人精品一区二三| www.狠狠爱| 中文字幕一区二区三| 99爱视频在线| 三级精品视频| 日本福利视频导航| 1024成人| 久久婷五月综合| 国产成人免费在线观看不卡| 国产精品久久不卡| 亚洲欧美在线视频观看| 天堂网一区二区三区| 欧美亚男人的天堂| 亚洲国产精彩视频| 亚洲午夜未满十八勿入免费观看全集| 麻豆视频免费在线观看| 性亚洲最疯狂xxxx高清| 国产激情欧美| 精品在线一区| 亚洲91视频| 久久成年人视频| 老司机精品影院| 91av视频导航| 国产一区二区三区免费在线 | 91视频一区| 日韩av综合在线观看| 国内精品伊人久久久久av影院| xxxx黄色片| 亚洲六月丁香色婷婷综合久久 | 日韩av毛片| 国产精品激情av电影在线观看 | 国产精品一区久久久久| 91精品人妻一区二区三区蜜桃欧美 | 日韩不卡一二三区| 男女一区二区三区| 亚洲天堂久久久久久久| 欧美brazzers| 亚洲成人黄色在线观看| 好操啊在线观看免费视频| 日本欧美爱爱爱| 红杏视频成人| 日韩小视频网站| 国产在线视频一区二区三区| 免费看黄色的视频| 午夜精品福利在线| 国产18精品乱码免费看| 另类天堂视频在线观看| 国产亚洲精品精品国产亚洲综合| 精品国产综合久久| 韩国自拍一区| 免费人成视频在线播放| 中文字幕视频一区二区三区久| 欧产日产国产69| 日韩av有码在线| av资源在线播放| 国产欧美日韩视频一区二区三区| 亚洲乱码电影| 搡的我好爽在线观看免费视频| 国产欧美精品日韩区二区麻豆天美| 激情五月色婷婷| 亚洲成人免费在线视频| 性欧美ⅴideo另类hd| 亚洲一区二区中文| 亚洲精品成人| 午夜影院免费观看视频| 国产精品久久精品日日| 中文字幕自拍偷拍| 怡红院精品视频| 成人福利片在线| 一区二区av| 狠狠网亚洲精品| 中文字幕在线观看成人| 日韩欧美一区中文| 欧美韩日亚洲| 国产三区精品| 国产精品美女| 美女久久久久久久久久| 色综合久久九月婷婷色综合| 天堂在线中文字幕| 国产成人精品视频| 日韩欧美精品| 亚洲精品中文字幕乱码无线| 一区二区三区不卡在线观看| 不卡的日韩av| 欧美性视频在线| 欧美精品尤物在线观看| 91亚洲免费视频| 亚洲精品免费看| 四虎永久在线观看| 日韩美女视频中文字幕| 国产精品久久久久久久免费观看 | 久久久女人电视剧免费播放下载| 成人精品毛片| 久久无码高潮喷水| 亚洲国产成人午夜在线一区| 亚洲一区二区视频在线播放| 久久天天躁狠狠躁夜夜躁 | 国产在线精品一区二区| 日本黄色小说视频| 亚洲国产中文字幕久久网| 综合久久2023| 影音先锋亚洲视频| 国产成人精品综合在线观看| 国产成人一区二区三区影院在线| 国产偷国产偷亚洲清高网站| yw.尤物在线精品视频| 国产欧美自拍视频| 99热99精品| 国产精品乱码一区二区| 高清一区二区三区日本久| 成人在线免费观看网站| 欧美做受高潮中文字幕| 欧美视频一区二区三区四区| 性国产高清在线观看| 欧美日韩亚洲一区二区三区四区| 国产一区二区视频在线| 日日骚av一区二区| 欧美成人精品激情在线观看| 中文字幕av一区二区三区人| 被黑人猛躁10次高潮视频| 欧美日韩免费网站| 日本色护士高潮视频在线观看 | 成人久久18免费网站图片| 国产一区二区三区的电影 | 丝袜美腿高跟呻吟高潮一区|