从OpenID提供商请求电子邮件地址的最简单方法是什么?在PHP中从OpenID提供商请求电子邮件地址
有没有一个很好的PHP库来简化这个问题?
我知道提供者实施不同的事情。我听说你需要做简单注册和属性交换。我特别想确保它与MyOpenID和Google等最大的提供商合作。
相关,但不够,问题:
从OpenID提供商请求电子邮件地址的最简单方法是什么?在PHP中从OpenID提供商请求电子邮件地址
有没有一个很好的PHP库来简化这个问题?
我知道提供者实施不同的事情。我听说你需要做简单注册和属性交换。我特别想确保它与MyOpenID和Google等最大的提供商合作。
相关,但不够,问题:
JanRain拥有一个Open ID PHP Library,这是一家从公司到OpenID的首批图书馆(我相信)。你提到与JanRain的网站MyOpenID合作。
这就是说,我个人现在使用Zend库(我在几年前玩过JanRain库),只是因为我通常使用Zend Framework进行开发。
以下是一些代码示例,如果提供商使用OpenID简单注册扩展。
该section of the Zend Reference指南显示了如何通过认证请求请求用户信息。以下是编辑为您的需要他们的示例代码:
//require e-mail, get nickname and fullname if available
$sreg = new Zend_OpenId_Extension_Sreg(array(
'nickname'=>false,
'email'=>true,
'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login($openid, $returnUrl, null, $sreg)) {
die("OpenID login failed.");
}
实现同样与JanRain库类似,这里是从库包的try_auth.php文件的一些代码(我编辑它显示的基本功能你要找的):
$auth_request = $consumer->begin($openid);
$sreg_request = Auth_OpenID_SRegRequest::build(
// Required
array('email'),
// Optional
array('fullname', 'nickname'));
$auth_request->addExtension($sreg_request);
对于属性交换退房的JanRain Auth_OpenID_AX Classes,Zend库中有一个feature request for AX support。
我想看看Zend Framework's OpenID Library, Zend_OpenID。你应该可以在没有整个框架的情况下使用它。
谢谢...但你有使用Zend拉电子邮件地址的经验吗?它与不同的提供商有多好? – philfreo 2009-11-13 00:56:32
谢谢...但是你有使用Zend拉电子邮件地址的经验吗?它如何与不同的供应商合作? – philfreo 2009-11-13 00:55:54
我已经添加了来自Zend文档的示例代码。 – 2009-11-13 15:08:30
所以基本上你仍然需要尝试使用SR获取数据,然后尝试AX如果失败了? – philfreo 2009-11-17 00:38:46