我正在尝试为我的网站构建 openid 登录系统。为此,我使用了 JanRain 的 php openid library v 2.1.3。
我还使用openid 选择器从列表中选择 openid 提供程序。
我首先创建了需要从提供程序获取的属性数组,如下所示:
$attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/contact/email',2,1, 'email'); $attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/namePerson/first',1,1, 'firstname'); $attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/namePerson/last',1,1, '姓氏'); $attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/namePerson',1,1, 'fullname'); $attribute[] = Auth_OpenID_AX_AttrInfo::make('http://axschema.org/namePerson/friendly',1,1, '用户名'); $ax = 新的 Auth_OpenID_AX_FetchRequest; foreach($attribute as $attr) { $ax->add($attr); } $auth_request->addExtension($ax);
在 finish_auth.php 文件中我写了这个来获取返回的属性
$ax = new Auth_OpenID_AX_FetchResponse(); $obj = $ax->fromSuccessResponse($response);
谷歌给了我所有请求的属性,但雅虎没有(正如这里所说,雅虎现在支持属性交换)。
雅虎是否也对属性交换设置了任何限制。(他们允许有限的网站访问 openid 的 sreg 扩展)。:(
请帮助我,我被困在这里。
谢谢