2013-02-01 139 views
1

我正在開發一個使用OAuth2通過其Google帳戶登錄用戶的Web應用程序。 我也在訪問一些Google數據API,因此我也要求刷新令牌和離線訪問(如果它有所不同)。使用OAuth2.0識別登錄的Google帳戶用戶

我的問題如下:在應用程序的用戶第一次登錄後,OAuth和我在數據庫中保存了令牌/用戶標識後,我需要在後續訪問中標識用戶的系統。

我通過在Session變量中保存Google用戶標識(通過調用'userinfo'端點獲得)來做到這一點。這可以正常工作,直到用戶退出其Google帳戶並可能使用其他帳戶登錄(對Google而不是我的應用)。 此時我的應用程序不再具有正確的登錄用戶,並且可以顯示不屬於正確用戶的數據。

有誰知道我如何以有效的方式識別登錄的Google帳戶用戶?

我想我總是可以調用userinfo端點,但是在我的應用程序的每個頁面上這樣做對我來說似乎是矯枉過正,並且想要一個更有效的方法。

我在PHP中編程,並使用'google-api-php-client'庫進行開發。

非常感謝您的幫助。

回答

2

你說得對。目前,最有效的方法是查詢userinfo端點。

但是,根據您的用戶界面的外觀,我們發現給出更改身份的選項是一個很好的折中。像「不是嗎?」這樣的小鏈接在登錄的按鈕是一個選項。有一個非常新的API沒有完整的文檔,可以讓你強制用戶選擇另一個帳戶。看到這個答案:Force google account chooser

我們希望能讓這個網站更加無縫和高效,但此時此刻沒有更多的公佈。

+0

謝謝你的答案,大衛。我認爲是不是你的組合?鏈接(對於不包含敏感用戶信息的頁面)以及對'userinfo'端點(對於我想確保擁有合適用戶的頁面)的調用將適用於我的應用:) – dszc

相關問題