Spring Security OAuth2.0認證授權六:前後端分離下的登入授權
阿新 • • 發佈:2021-01-29
歷史文章
> [Spring Security OAuth2.0認證授權一:框架搭建和認證測試](https://blog.kdyzm.cn/post/24)
> [Spring Security OAuth2.0認證授權二:搭建資源服務](https://blog.kdyzm.cn/post/25)
> [Spring Security OAuth2.0認證授權三:使用JWT令牌](https://blog.kdyzm.cn/post/26)
> [Spring Security OAuth2.0認證授權四:分散式系統認證授權](https://blog.kdyzm.cn/post/30)
> [Spring Security OAuth2.0認證授權五:使用者資訊擴充套件到jwt](https://blog.kdyzm.cn/post/31)
>
本篇文章將會解決上一篇文章《[Spring Security OAuth2.0認證授權五:使用者資訊擴充套件到jwt](https://blog.kdyzm.cn/post/31) 》中遺留的問題,並在原有的專案中新增模組`business-server`用來充當前端頁面的web容器並轉發登入請求和更換token的請求等,以模擬前後端分離下的登入以及更換token操作。
## 一、jwt令牌在閘道器處的過期時間校驗
上一篇文章中講了在閘道器處解析token並轉發到目標服務的操作,因為使用了jwt令牌的原因,所以省了一步到認證伺服器認證的操作,只要驗籤成功,就認為令牌有效。這實際上留下了一個bug:服務端無法主動取消jwt令牌,所以這個令牌只要客戶端儲存下來,如果不呼叫認證伺服器的令牌驗證介面,這個jwt令牌將永遠有效。因此需要在閘道器處加上對過期時間的校驗。
在TokenFilter中新增以下程式碼邏輯
``` java
//取出exp欄位,判斷token是否已經過期
try {
Map map = objectMapper.readValue(payLoad, new TypeReference