我在正確實施OAuth時遇到了麻煩。 我使用客戶端/ API架構(Angular爲Front,Node.js爲back),我希望用戶僅使用Google OAuth身份驗證進行登錄。Google OAuth2流和id_token刷新
這裏是什麼,我認爲是暫時的正確方法(告訴我,如果我誤解的東西):
- 角開一個谷歌彈出,詢問用戶的同意。
- 一旦用戶同意,Google授權服務器將發回驗證碼。
- 此驗證碼被轉發到API端點。
- 然後,API要求Google授權服務器將此代碼交換爲access_token,id_token和refresh_token。
- Google發送這3個令牌。
- API使用的access_token從谷歌API檢索用戶
- 的API仍然存在用戶
這裏是小dillema,在我看來,在的access_token和refresh_token應該存儲到數據庫和id_token應該發回給Angular客戶。 這樣,它將允許API在Google API中請求資源,並且如果令牌過期,則可以使用refresh_token來請求新的令牌。 客戶端,id_token被嵌入到所有請求中,從而允許API識別客戶端並通過https://www.googleapis.com/oauth2/v3/certs的Google證書驗證其身份驗證。
假設這是正確的方式來使用令牌,我怎麼能處理id_token過期,因爲客戶端沒有任何刷新令牌?
謝謝!