2012-08-02 124 views
0

我們有通過谷歌混合Openid(OpenId + OAuth1 [0])協議進行身份驗證的用戶。要從谷歌使用更新的API,我們必須更改爲基於oauth2的身份驗證。如果他是我們的openid用戶之一,是否有辦法在oauth2登錄後知道?Google Openid和Oauth

這個ID看起來很不一樣。在google_oauth2用戶ID是這樣的:

123456789

,並在谷歌混合用戶ID是這樣的:

https://www.google.com/accounts/o8/id?id=AItOawnlIGFin5I0F059UdqSYbK9JmA99e99ms 

是否有某種方式來適應這種在一起?是否有一個基於oauth的調用可以讓我檢索這樣一個公開的用戶標識?由於我們將其用於登錄目的,因此我不想在登錄頁面上放置2個Google登錄按鈕。我幾乎無法想象我們的用戶能夠理解這一點。

是否有解決此類問題的共同策略?

[0] https://developers.google.com/accounts/docs/OpenID#oauth

回答

0

好吧,似乎我有辦法做到這一點。要落實和檢查,但在理論上它應該像這樣工作:

send user to oauth2 login 
    -> if known, log him in 
    -> if unknown send him to openid with immediate mode 
      -> if successfull log him in, associate the former oauth connection 
      -> if error the user is unknown and will be created with his oauth token 
如果用戶不與谷歌登錄

立即模式也可能會失敗,但因爲他剛從的oauth2舞回來,他就必須有因爲他立即被重定向,所以在這之間註銷是不太可能的。

0

combination OpenId/OAuth call谷歌的談判應該做您的需要。但是,文檔中的所有鏈接都是針對OAuth 1.0的。因此,您需要進行調查以確保它可以與OAuth 2.0協同工作,因爲Google已棄用了OAuth 1.0界面。

+0

嗨,這是我們目前所做的。但這是oauth1,較新的API需要OAuth2。 – squiddle 2012-08-03 05:57:49