專案需要登入機制,因為作者野心太大
希望未來系統能繼續開發下去,讓更多人使用,登入機制是必須的。
##但是要怎麼導入登入機制呢?
剛開始想的時候大概有三個方向
A:先自己弄一套 email , password登入機制
B:直接導入google登入
C:AB同時
然後我就在想,我每天開發+寫文章的時間約三到四小時(假設不偷懶)
選A的話還要搞密碼、還要弄個登入的模組、為了這個模組我還要如何如何
再想起後續還要搞密碼安全性問題之類的,該有多煩阿
所以就選B,雖然還要串google的登入API,反正沒串過試試看。
經過查資料問AI的結果,大致上有兩種方案,下面是請AI整理過後的內容
Authorization: Bearer <google_id_token>
中附上該 Token。POST /auth/google
,將 Google ID Token 傳給後端。Authorization: Bearer <your_jwt>
,後端只驗證自己的 JWT。userId
、roles
、scopes
等)。/auth/google
)與 JWT 驗證 Filter。這邊選B,主要考量的點是選A的話,每次請求由後端去驗證 Google Token這個點對我來說不太合理
因為需要跑程式 = 出錯機率提高,既然有登入一次就持續使用ID token的機制就不要選風險比較高的方案
這樣下去做分工明確,就算出錯也比較好找問題
流程會是這樣:
後兩篇會繼續說明
前端登入實作
(Google Oauth , JWT 狀態管理(Context、localStorage、自動清除過期), API 請求如何帶 Token)
後端認證實作
(Spring Security 設定 , 驗證 Google ID Token 流程 , JWT 產生與驗證)
天哪,怎麼那麼多,我寫的完嗎QQ
總之Day8 先到這裡,後續兩篇會一步一步來。
圖片出處:Gatao 2: Rise of the King、自己畫