我想使用谷歌账号登录我的网站,现在我可以使用谷歌账号登录(通过OpenID),但我不知道如何在谷歌中获取用户账号和信息?就像下面的链接(由谷歌提供)
http://googlecodesamples.com/hybrid/
这个链接可以通过用户的谷歌帐户登录,并列出用户的谷歌文档中的所有文档,所以我猜通过使用OAuth可以让我获得用户的帐户(如example@gmail.com)和相关信息,但我不知道该怎么做?
PS。我用php写我的网站。
发布于 2011-01-27 04:58:59
我不能为您编写整个代码,但我会试着给您一个大致的概述。
示例请求URL:
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 然后,您应该会收到此响应URL,作为您需要拦截的重定向:
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 一旦你得到了那个URL,你就都准备好了!希望这能有所帮助。
发布于 2014-04-24 21:27:36
您可能希望使用现有的身份验证解决方案,而不是重新发明轮子:-)因为您没有指定正在使用哪种服务器脚本语言,例如,对于PHP,请看一下:
http://opauth.org/
它非常容易实现,不仅支持google帐户,还支持许多其他帐户。它还会提取出一些您感兴趣的帐户信息。
..。或者谷歌搜索"openID身份验证框架“或"oauth框架”:-)
https://stackoverflow.com/questions/4594351
复制相似问题