我使用Facebook登錄來識別用戶。當新用戶來到時,我將他們的用戶ID存儲在我的數據庫中。他們下次來時,我認出了他們的Facebook ID,並且知道它在我的數據庫中是哪個用戶。如何識別Google OAuth2用戶?
現在我正在嘗試使用Google的OAuth2做同樣的事情,但是如何識別用戶呢?
Google向我發送了幾個代碼和令牌(access_token,id_token,refresh_token),但是它們都不是常量。意思是如果我在2分鐘後註銷並重新登錄,則所有3個值都已更改。我怎樣才能唯一識別用戶?
我使用他們的PHP客戶端庫: 「這是誰」 https://code.google.com/p/google-api-php-client/
請注意,Google最近更改了響應,現在'id_token'包含的是靜態標識符,而不是'id'中的密鑰'sub',如上例所示。 AFAIK,這個改變是他們對OpenID Connect協議的解釋。不幸的是,當我寫這篇文章時,回覆看起來有些隨意:有時它是'id',有時它是'sub',所以我需要支持這兩者。 –