我想用PHP创建一个OpenID登录,就像它可以在Stack Overflow上找到一样。OpenID像堆栈溢出
我知道这方面有很多问题,但我的情况不同。
如果我正确理解,每个OpenID都由唯一的URL定义。但是:如果我点击堆栈溢出登录页面上的Google按钮,则会在文本字段中插入一个通用URL。这是OpenID服务器的直接URL吗?如果是这样,我该如何将URL传递给this class?
我想用PHP创建一个OpenID登录,就像它可以在Stack Overflow上找到一样。OpenID像堆栈溢出
我知道这方面有很多问题,但我的情况不同。
如果我正确理解,每个OpenID都由唯一的URL定义。但是:如果我点击堆栈溢出登录页面上的Google按钮,则会在文本字段中插入一个通用URL。这是OpenID服务器的直接URL吗?如果是这样,我该如何将URL传递给this class?
在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
你不能与谷歌使用SimpleOpenID验证。该库仅支持OpenID 1.1,而Google仅支持OpenID 2.0。
去与SimpleOpenID不适用于谷歌的其他答案。我最近为一个项目使用了http://gitorious.org/lightopenid,它确实有效(并且包括谷歌示例)。
该库在php5中正常工作,并且启用了完整的错误/警告。
OpenID进程由几个步骤组成。第一个是将浏览器重定向到OpenID提供程序,然后用户返回到您的页面,并获得有关他的一些信息。
其中返回信息,提供他的OpenID。这是您正在查找的OpenID,而不是用户在文本字段中写入的那个。
这个“OpenID”仅用于发现身份提供者,仅此而已。这就是您可以简单地将yahoo.com
放入OpenID框并可以使用雅虎登录的原因。
这一个Google URL被称为“OP标识符”,是的,它是登录Google的标识符。至于PHP如何工作,我一点都不知道。 :) – 2010-05-01 02:30:00