SpringBoot系列 Web應用鑑權思路

2021-09-08 05:25:56 字數 1260 閱讀 2681

jwt 的優點:

1. jwt 是乙個 stateless 方案, 不需要解決 session 共享問題.

2. jwt 更適合於手機端的訪問, 因為移動端不支援 cookie.

3. jwt 更適合於微服務端的驗證, 因為微服務的使用方通常不是web browser, 而是服務端程式, 使用 jwt 更方便.

3. jwt 支援跨域訪問, 而 cookie不允許.

4. jwt 因為不依賴cookie, 所以不需要考慮csrf(跨站請求偽造)攻擊.

jwt 的缺點:

1. 伺服器端不能主動登出 jwt token, 使用 session 方式時, 伺服器端是能主動 logout 乙個登陸.

2. 對於普通 web 瀏覽器, 使用 cookie/session 幾乎無感, 而 jwt 需要在請求的時候加 header.

basic authentication 的優點:

1. 優點和jwt差不多, 另外它比jwt 更容易實現. 

basic authentication 的缺點:

1. 每次請求時都需要傳送密碼, 所以僅僅適合於api專案的鑑權, 不適合webui 專案;

2. 和 jwt token 方式相比, 每次請求都需要受訪api服務驗證"密碼", 這往往要查詢db, 而 jwt 只需要用演算法即可 token 是否有效.

******************************

jwt token 流程

****************************** 

為了防止重複攻擊, 需要設定token有效期, 企業內部也不宜太短, 設定1~2天較好一些.

乙個應用申請到 access token 之後, 有責任先將該 token 儲存, 最好儲存到 db 中, 另外最好有乙個定時任務定期申請 access token, 並在 db 中維護乙個 token 池, 在用的時候應使用有效期更遠的那個 token.

******************************

參考******************************

基於token的web後台認證機制

使用json web token設計單點登入系統

聊一聊jwt與session

重拾後端之spring boot(四):使用jwt和spring security保護rest api

Spring Boot 系列教程

spring boot 系列教程 spring boot 快速入門教程 spring boot 整合swagger文件 spring boot 整合mybatis框架 spring boot 實現mybatis分頁 spring boot 整合druid資料來源 spring boot 實現myba...

springboot 渲染web頁面

spring boot提供了預設配置的模板引擎主要有以下幾種 注意 避免使用jsp,jsp無法實現spring boot的多種特性 org.springframework.bootgroupid spring boot starter webartifactid dependency org.spr...

Spring Boot乾貨系列總綱

博主16年認識sping boot,17年才開始學習。自己學習的時候也查閱了很多資料,也看到很多優秀的部落格,但是整體上感覺沒有我想象中的那麼強大,一是版本有點舊了,大多是1.4版本的,博主自己看的時候已經1.5了。二是網上資料太多,質量參差不齊。每次查資料都要在海量資源中去挑選自己想要的好累啊。所...