6 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
當(dāng)令牌過(guò)期后,一般的處理方式是跳轉(zhuǎn)到登陸頁(yè)面。
但oauth2
有定義如何更新令牌,你也可以自己使用其他實(shí)現(xiàn)。令牌(access token)
過(guò)期1個(gè)超時(shí)時(shí)間
內(nèi),通過(guò)舊的刷新令牌(refresh token)
獲取新的令牌,以此達(dá)到續(xù)1個(gè)超時(shí)周期的目的。而如果超過(guò)1個(gè)超時(shí)周期(就是1個(gè)超時(shí)時(shí)間內(nèi)沒(méi)有訪問(wèn)),那就是真的超時(shí),需要重新登錄。這意外這用戶停留

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
首先這種情況就是不應(yīng)該發(fā)生的。
我之前的做法:
如果是網(wǎng)站:當(dāng)用戶某次打開(kāi)網(wǎng)頁(yè)的時(shí)候,如果 token 沒(méi)過(guò)期,要保證在關(guān)掉網(wǎng)頁(yè)之前 token 不過(guò)期。
如果是app:用戶某次打開(kāi) app ,如果 token 沒(méi)過(guò)期,要保證在關(guān)掉 app 之前 token 不過(guò)期。

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
這個(gè)問(wèn)題還是挺常見(jiàn)的,比如我開(kāi)這個(gè)窗口長(zhǎng)時(shí)間不關(guān),然后就過(guò)期了.......
也挺好解決:
場(chǎng)景1:如果用戶長(zhǎng)時(shí)間停留,超過(guò)一個(gè)token有效的最長(zhǎng)時(shí)間,無(wú)解
場(chǎng)景2:如果token
的有效時(shí)間是3天,那么不管用戶什么時(shí)候再次進(jìn)來(lái),刷新一下token
有效時(shí)間就好了,比如今天登陸,第二天再登陸,那么第二天再登陸的有效時(shí)間其實(shí)已經(jīng)又有三天了,或者直接把token
換掉,一了百了。這樣的話對(duì)于場(chǎng)景一就只能在掛了三天的頁(yè)面再操作才會(huì)出現(xiàn)了。
總結(jié):用戶每次初次進(jìn)來(lái)的時(shí)候驗(yàn)證一下舊的token
,無(wú)效就先登錄,有效也要刷新token
就好了,不管是刷新token
的有效時(shí)間或者token
的值。

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
添加回答
舉報(bào)