2013-02-25 74 views
2

幾個月前我們爲我們的網站實施了Google OAuth。到目前爲止,兩個用戶(約100人)的userinfo配置文件不完整。我們使用有效令牌打電話給'https://www.googleapis.com/oauth2/v1/userinfo?',並且響應json僅包含[locale,verified_email,email,id]。Google的UserInfo API是否提供任何擔保?

的文檔(https://developers.google.com/accounts/docs/OAuth2Login#userinfocall)不明確的,但我理解他們的方式,

的響應應該包括: [ID,電子郵件,verified_email,姓名,GIVEN_NAME,FAMILY_NAME,時區,性別] 和有時包括: [圖片,區域設置]

有誰知道UserInfo API有哪些類型的保證?我應否拒絕不完整的檔案爲無效?是否有其他解釋爲什麼配置文件不完整?

UPDATE 3/6/14
我能夠複製這個問題。我們向用戶發送關閉以谷歌請求,兩個作用域:

https://www.googleapis.com/auth/userinfo.profile

https://www.googleapis.com/auth/userinfo.email

到目前爲止,我可以告訴谷歌不允許用戶挑選櫻桃作用域其中它們允許。這是全部或沒有。但是,我能夠從URL中移除userinfo.profile範圍並重新加載頁面。這使我發回了一個有效的令牌,但不是正確的範圍。我需要擊中tokeninfo端點並確保正確的範圍已被授權。

回答

0

您是否也使用OpenID?我強烈懷疑這些用戶實際上沒有針對UserInfo的有效OAuth令牌,而是您正在獲取與較弱的OAuth許可相對應的數據。理想情況下,向這些用戶詢問您的網站的哪些數據會顯示在他們的Google帳戶安全頁面中,並將其與功能用戶的數據進行比較。你自己。

嘗試撤銷您的令牌,然後點擊終端並查看您得到的結果。

+0

我不知道我理解你的答案。澄清我們不使用OpenID。我們正在使用服務器端工作流程。用戶被退回到谷歌的OAuth頁面,返回一個「代碼」,通過「https://accounts.google.com/o/oauth2/token」端點爲代幣交換(服務器端) – Charles 2013-03-06 23:02:30

0

注:這是我認爲

我也與OAuth的工作一點時間,現在,在與Facebook個人主頁,例如發生次數也遇到了這個問題。說實話,我不明白爲什麼請求應該返回不完整的數據(假設範圍是正確的),除了提供者的實際配置文件不完整(儘管這對你來說沒有任何意義,而且這個[locale, verified_email, email, id]和沒有[firstName, lastName])。例如,某些配置文件沒有配置文件圖片e.t.c.

總而言之,我會說:這不是保證(這不僅僅是特定於谷歌)。我之前編寫了一個OAuth身份服務器,並且OAuth不會執行任何操作(除非我錯過了它)以強制執行必須通過API公開的數據類型。在存儲數據之前,您應該檢查數據。

而且拒絕型材件,我想這應該是你在你的應用程序中設置的說,你不接受,沒有firstName例如配置文件的標準。

0

我有同樣的問題。對於某些配置文件,「userinfo」作用域不會返回given_name和family_name。直到我找到它爲什麼這樣,我沒有返回任何值時使用這兩個空字符串。我不能認爲Google讓人們創建Google帳戶,但不提供名字和姓氏的一些值。谷歌API是越野車,緩慢和混亂。所以我寧願假設這是API問題。

相關問題