Php 类OpenID堆栈溢出

Php 类OpenID堆栈溢出,php,authentication,login,openid,Php,Authentication,Login,Openid,我想用PHP创建一个OpenID登录,就像可以在堆栈溢出中找到它一样 我知道这方面有很多问题,但我的问题不同。 如果我理解正确,每个OpenID都由一个唯一的URL定义。但是:如果我点击Stack Overflow登录页面上的Google按钮,就会在文本字段中插入一个通用URL。这是指向OpenID服务器的直接URL吗?如果是,我必须如何将URL传递给OpenID规范()中的? 为了发出OpenID身份验证请求,输入OP标识符时,必须将值“”用作声明的标识符和OP本地标识符 现在,这基本上意味着

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

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

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

为了发出OpenID身份验证请求,输入OP标识符时,必须将值“”用作声明的标识符和OP本地标识符

现在,这基本上意味着不使用“用户特定的OpenID URL”,您可以使用一个通用URL,并简单地指定身份提供者应该在返回中提供用户的实际OpenID URL

请注意,这是OpenID2.0的一个特性!很多库仍然是OpenID1.x


HTH

您不能使用SimplePenID向Google进行身份验证。该库只支持OpenID1.1,而Google只支持OpenID2.0。

再加上SimplePenid不适用于Google的其他答案。我最近用过一个项目,它确实有效(包括谷歌的一个例子)


该库在php5中运行良好,启用了完整的错误/警告。

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

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


此“OpenID”仅用于发现身份提供者,仅此而已。这就是为什么你可以简单地将
yahoo.com
放入一个OpenID框中,然后用yahoo登录。

一个谷歌URL被称为“OP标识符”,是的,它是谷歌登录的标识符。至于PHP是如何工作的,我一无所知