像Stack Overflow这样的OpenID

时间:2010-04-30 15:24:49

标签: php authentication login openid

我想用PHP创建一个OpenID登录,就像它可以在Stack Overflow上找到一样。

我知道有很多问题,但我的不同。

如果我理解正确,每个OpenID都由唯一的URL定义。但是:如果我点击Stack Overflow登录页面上的Google按钮,则会在文本字段中插入一个通用URL。这是OpenID服务器的直接URL吗?如果是,我该如何将URL传递给this class

4 个答案:

答案 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框并可以使用雅虎登录的原因。