处理Google OpenID

3
我正在尝试为我的网站实现Google OpenID,但我不知道如何处理我收到的OpenID响应。
目前,当您点击登录按钮时,它会带您转到Google网站,在那里要求您登录,当我点击“登录”后,它会带我回到我的网站,并在URL中显示以下内容:
http://mysite.com/return.php?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0          
&openid.mode=id_res          
&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud          
&openid.response_nonce=2009-11-07T02%3A50%3A43Zv7QGuR9bs7yijw          
&openid.return_to=http%3A%2F%2Fmysite.com%2Freturn.php          
&openid.assoc_handle=AOQobUfDUg3KHwhcQlAgh4cjISdyflaGuGzWJEpNzR8TnufNIvKLBex4
&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle          
&openid.sig=FRIZWu78OrjWgb%2Fkiqq%2B63Zs8Pk%3D
&openid.identity=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawn34aUewQCm4U9DSwJFm4rVyyw9Zi6S_1k
&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAItOawn34aUewQCm4U9DSwJFm4rVyyw9Zi6S_1k

现在我完全不知道该怎么办。

能否有人指点一下我应该往哪个方向走呢?

谢谢。


抱歉,文字溢出了。 - Stephen
3个回答

3
使用php-openid库来发出OpenID请求并验证来自您的基于PHP的网站的响应。自己编写OpenID非常复杂,包括复杂的加密(例如:Diffie Hellman密钥交换)。
如果您想了解如何运作,可以阅读OpenID规范,即使实现所有内容也会太繁琐。这里有更多开发人员资源
为帮助您入门:在OpenID术语中,您的网站称为“依赖方”或“使用者”。在此情况下,Google将是“身份提供者”(一种验证用户的服务)。
还有具体的使用Google的OpenID实现在线文档。
但是,我强烈建议使用库。

谢谢。我打算尝试理解php-openid库的工作原理。我看到了这个登录类'http://www.andrewpeace.com/googleopenid/GoogleOpenID.php.txt',这就是我得到响应的方式。 - Stephen
1
实现正确的OpenID并不容易。 - Andrew Arnott

0

现在,Google已经使得处理OPENID请求和其他实现变得非常容易,只需登录https://code.google.com/apis/console(开发者控制台)并创建项目,然后单击“身份验证工具包”,提供信息并在网站上提供简单链接即可实现OPENID。


0

请参考PHP OpenID库,其中列出了一些PHP OpenID库。正如Andrew Amott所说,自己实现并不容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接