我想通过谷歌帐户登录我的网站,现在我可以使用谷歌帐户登录(通过OpenID),但我不知道如何在谷歌获取用户帐户和信息? 就像下面的链接(由谷歌提供)
http://googlecodesamples.com/hybrid/
此链接可以通过用户的谷歌帐户登录,并列出用户的谷歌文档中的所有文档,所以我猜通过使用OAuth可以让我获取用户的帐户(如example@gmail.com)并获取相关信息,但我不知道怎么办?
PS。我用php写我的网站
答案 0 :(得分:0)
我不能为你编写整个代码,但我会试着给你一个如何完成它的概述。
示例请求网址:
https://www.google.com/accounts/o8/id
?openid.ns=http://specs.openid.net/auth/2.0
&openid.ns.pape=http://specs.openid.net/extensions/pape/1.0
&openid.ns.max_auth_age=300
&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select
&openid.identity=http://specs.openid.net/auth/2.0/identifier_select
&openid.return_to=http://www.example.com/checkauth
&openid.realm=http://www.example.com/
&openid.assoc_handle=ABSmpf6DNMw
&openid.mode=checkid_setup
&openid.ui.ns=http://specs.openid.net/extensions/ui/1.0
&openid.ui.mode=popup
&openid.ui.icon=true
&openid.ns.ax=http://openid.net/srv/ax/1.0
&openid.ax.mode=fetch_request
&openid.ax.type.email=http://axschema.org/contact/email
&openid.ax.type.language=http://axschema.org/pref/language
&openid.ax.required=email,language
然后,您应该收到此响应网址作为您需要拦截的重定向:
http://www.example.com/checkauth
?openid.ns=http://specs.openid.net/auth/2.0
&openid.mode=id_res
&openid.op_endpoint=https://www.google.com/accounts/o8/ud
&openid.response_nonce=2008-09-18T04:14:41Zt6shNlcz-MBdaw
&openid.return_to=http://www.example.com:8080/checkauth
&openid.assoc_handle=ABSmpf6DNMw
&openid.signed=op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle
&openid.sig=s/gfiWSVLBQcmkjvsKvbIShczH2NOisjzBLZOsfizkI= &openid.identity=https://www.google.com/accounts/o8/id/id=ACyQatixLeLODscWvwqsCXWQ2sa3RRaBhaKTkcsvUElI6tNHIQ1_egX_wt1x3fAY983DpW4UQV_U
&openid.claimed_id=https://www.google.com/accounts/o8/id/id=ACyQatixLeLODscWvwqsCXWQ2sa3RRaBhaKTkcsvUElI6tNHIQ1_egX_wt1x3fAY983DpW4UQV_U
获得该网址后,您就完成了所有设置!希望这会有所帮助。
答案 1 :(得分:0)
您可能希望使用现有的身份验证解决方案,而不是重新发明轮子:-) 由于您未指定所使用的服务器脚本语言,例如对于PHP,请看一下:
这很容易实现,不仅支持谷歌帐户,还支持许多其他帐户。 它还会提取您感兴趣的一些帐户信息。
...或google之类的“openID身份验证框架”或“oauth框架”: - )