我想用PHP创建一个OpenID登录,就像它可以在Stack Overflow上找到一样。
我知道有很多问题,但我的不同。
如果我理解正确,每个OpenID都由唯一的URL定义。但是:如果我点击Stack Overflow登录页面上的Google按钮,则会在文本字段中插入一个通用URL。这是OpenID服务器的直接URL吗?如果是,我该如何将URL传递给this class?
答案 0 :(得分:0)
在OpenID规范(section 7.3.1)中,它说
为了进行OpenID身份验证请求,当输入OP标识符时,值“http://specs.openid.net/auth/2.0/identifier_select”必须同时用作声明的标识符和OP本地标识符。
现在,这基本上意味着不是使用“用户特定的OpenID URL”,而是使用通用URL,只需指定身份提供者应在返回时提供用户的实际OpenID URL。
请注意,这是OpenID 2.0的一项功能!很多库仍然是OpenID 1.x
HTH
答案 1 :(得分:0)
您无法使用SimpleOpenID对Google进行身份验证。该库仅支持OpenID 1.1,而Google仅支持OpenID 2.0。
答案 2 :(得分:0)
要使用其他答案,SimpleOpenID无法与谷歌一起使用。我最近使用http://gitorious.org/lightopenid作为项目,它确实有效(并包含了一个google示例)。
该库在php5中运行良好,启用了完整错误/警告。
答案 3 :(得分:0)
OpenID流程包含几个步骤。第一种是将浏览器重定向到OpenID提供程序,然后用户返回到您的页面,您将获得有关他的一些信息。
在返回的信息中,提供了他的OpenID。这是您正在寻找的OpenID,而不是用户在您的文本字段中写入的OpenID。
此“OpenID”仅用于发现身份提供商,仅此而已。这就是你可以简单地将yahoo.com
放入OpenID框并可以使用雅虎登录的原因。