2010-04-30 172 views
1

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

我知道这方面有很多问题,但我的情况不同。

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

+1

这一个Google URL被称为“OP标识符”,是的,它是登录Google的标识符。至于PHP如何工作,我一点都不知道。 :) – 2010-05-01 02:30:00

回答

0

在OpenID的规格(section 7.3.1)它说

为了使OpenID认证请求的目的,值“http://specs.openid.net/auth/2.0/identifier_select”必须被用作声明的标识符和OP-本地标识符当OP既标识符已输入。

现在是什么这基本上意味着,而是采用了“用户特定的OpenID URL”,您可以使用一个通用网址,只需指定一个身份提供者应在返回给用户提供实际的OpenID URL是什么。

请注意,这是OpenID 2.0的一个功能!很多图书馆内仍存在的OpenID 1.x的

HTH

0

你不能与谷歌使用SimpleOpenID验证。该库仅支持OpenID 1.1,而Google仅支持OpenID 2.0。

0

去与SimpleOpenID不适用于谷歌的其他答案。我最近为一个项目使用了http://gitorious.org/lightopenid,它确实有效(并且包括谷歌示例)。

该库在php5中正常工作,并且启用了完整的错误/警告。

0

OpenID进程由几个步骤组成。第一个是将浏览器重定向到OpenID提供程序,然后用户返回到您的页面,并获得有关他的一些信息。

其中返回信息,提供他的OpenID。这是您正在查找的OpenID,而不是用户在文本字段中写入的那个。

这个“OpenID”仅用于发现身份提供者,仅此而已。这就是您可以简单地将yahoo.com放入OpenID框并可以使用雅虎登录的原因。