2016-12-18 214 views
0

我正在手動編寫OAuth2服務器流程,以允許用戶使用Google(和其他網站,但讓我們專注於Google)登錄。Google OAuth2驗證服務器流程中的訪問令牌

我的基本流程工作:

  1. 用戶單擊登錄鏈接。
  2. 轉到Google並看到同意屏幕。
  3. 接受。
  4. 重定向回我的網站。
  5. 服務器將相關信息和日誌的用戶。

到目前爲止好。現在我想確保服務器記住下次用戶。爲此,我將令牌和其他用戶數據一起存儲在服務器上。

現在,如果令牌仍然有效,那麼如何檢查服務器到服務器?我有它的到期時間,所以我知道這段時間過去後它是無效的,但是我該怎麼辦呢?如果我只想允許登錄,我是否應該要求永久(離線)令牌?

回答

1

作爲Google授權成功的結果,您還應該獲得refresh_token。如果你沒有得到那麼做下面的事情。

  1. 當你重定向到授權端點添加附加參數ACCESS_TYPE =下線,這將確保你會得到refresh_token
  2. 使用刷新令牌來獲得額外的訪問令牌。

現在,爲驗證您可以擊中Google的令牌驗證終結點,如果您不維護狀態。如果您保持該狀態,那麼您可以驗證令牌是否過期,如果令牌只有簽名,如果加密,則必須從Google進行驗證。

您可以在令牌驗證here

+0

是與谷歌不同的URL的OAuth發揮here

更多的細節,但是這並沒有回答我的問題:我應該問一個永久性的(離線)令牌*如果我只想允許登錄?* –

+0

如果你不這樣做,那麼每次你必須將最終用戶重定向到谷歌進行身份驗證時,唯一的區別是如果會話存在,那麼它可能不會再次驗證(尚未測試它)和馬上會給你一個令牌,但如果你不想讓最終用戶去谷歌那麼是的,你必須要求離線訪問。 – dvsakgec

相關問題