自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Go 項(xiàng)目開發(fā)實(shí)戰(zhàn)-用戶Token的刷新、踢人下線和防盜檢測

開發(fā) 前端
即然有效期短那就得有合理的方式讓用戶的Token能夠被刷新,不然用戶使用產(chǎn)品期間隔一段時(shí)間就得登錄一次,一天登錄好幾次,用戶體驗(yàn)可想而知,定是不會好的。

這節(jié)我們繼續(xù)講Token的刷新和主動踢人下線。

圖片圖片

首先Token為啥刷新呢?很簡單為了安全性用戶AccessToken的時(shí)效性會相對較短,保證Token被其他惡意用戶拿到后也不能長時(shí)間用它來瀏覽用戶的數(shù)據(jù)。

即然有效期短那就得有合理的方式讓用戶的Token能夠被刷新,不然用戶使用產(chǎn)品期間隔一段時(shí)間就得登錄一次,一天登錄好幾次,用戶體驗(yàn)可想而知,定是不會好的。

為什么要有刷新Token

在我們的用戶認(rèn)證體系中,當(dāng)用戶登錄成功后,在服務(wù)端存儲以下的Token信息和用戶會話信息。

圖片圖片

這里我們設(shè)計(jì)了兩種Token:AccessToken以及RefreshToken,AccessToken專門用戶來接口請求中驗(yàn)證請求的用戶身份,我們上面說過為了安全考慮它的時(shí)效比較短一般 0.5h ~ 2h,到期后客戶端可以用RefreshToken來刷新獲得新的Token信息。

RefreshToken的時(shí)效一般設(shè)的較長10 ~ 30天都可以,假設(shè)用戶首次登錄后過了幾天再來使用應(yīng)用,客戶端仍能通過RefreshToken來刷新Token信息,用戶在短期未使用產(chǎn)品的情況下仍能保持住登錄態(tài),不至于出現(xiàn)隔幾天再用每次都得重新登錄的情況。

所以兩個(gè)Token,AccessToken 時(shí)效短,RefreshToken 時(shí)效長,兩者結(jié)合,在安全性和用戶體驗(yàn)上都有一定保證。

在上節(jié)用戶 Token 的派發(fā)、存儲和認(rèn)證開發(fā)的功能中,項(xiàng)目的用戶登錄系統(tǒng)時(shí),服務(wù)端存儲了上述Token和會話信息后會向客戶端下發(fā)以下圖示中的Token字段。

圖片圖片

除了上面這張用戶登錄的情況,當(dāng)客戶端進(jìn)行Token信息的刷新時(shí),這些Token字段也會更新并返回給客戶端,也就是說刷新Token信息后除了AccessToken會更新外,RefreshToken也會刷新,用戶登錄態(tài)的可保持時(shí)間又往后延長了一個(gè)新的周期。與此同時(shí)舊的RefreshToken我們并不會直接刪,而是設(shè)置延遲幾個(gè)小時(shí)刪除,為什么這么做呢?后面告訴你答案。我們先看一下Token刷新邏輯的實(shí)現(xiàn)。

Token刷新邏輯實(shí)現(xiàn)

我用下面這個(gè)順序圖說明了整個(gè)Token刷新的邏輯。

圖片圖片

大家把這張圖中描述的Token刷新邏輯好好地看一下,通過這張圖可以看出來,刷新邏輯與生成邏輯只有兩處不一樣:

總結(jié)

本節(jié)的代碼版本號為c11,加入項(xiàng)目后訪問 https://github.com/go-study-lab/go-mall/compare/c10...c11 能看本章節(jié)的詳細(xì)代碼。

圖片

Token的主要邏輯到這里就開發(fā)完成了,接下來我們把它接入到用戶登錄的流程中去,另外現(xiàn)在的Token體系還不夠完善,因?yàn)閷τ谟脩舻浅觥⒅刂妹艽a等需要主動過期Token和清除Session的邏輯我們還沒有覆蓋到,這些我們會在接下來的幾節(jié)中開發(fā)相應(yīng)的功能時(shí)再去完善。

責(zé)任編輯:武曉燕 來源: 網(wǎng)管叨bi叨
相關(guān)推薦

2025-01-02 09:02:09

Go項(xiàng)目Token

2025-01-15 09:21:01

2025-02-10 09:03:29

2025-02-26 09:03:24

2024-12-30 09:12:17

2025-03-07 09:01:14

商品模塊接口項(xiàng)目

2025-03-10 09:07:20

2025-03-18 09:05:28

2025-04-25 08:30:00

前端后端用戶登錄

2024-07-11 10:38:02

2024-09-02 10:46:57

2011-03-30 20:52:03

無流量用戶上網(wǎng)行為管理網(wǎng)康科技

2025-03-04 00:00:05

Go項(xiàng)目分類樹

2023-03-14 08:01:53

Go開發(fā)原子操作

2025-04-28 01:55:00

工具sqlmockSQL

2024-04-17 12:59:18

前端Token開發(fā)

2024-11-13 09:13:45

2022-03-13 23:51:39

Web項(xiàng)目Go

2022-01-27 08:27:23

Dubbo上下線設(shè)計(jì)

2022-09-28 12:39:46

axios攔截器
點(diǎn)贊
收藏

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