题
从OpenID提供商请求电子邮件地址的最简单方法是什么?
是否有一个很好的PHP库可以简化此问题?
我知道提供者以不同的方式实施事情。我听说您需要同时进行简单的注册和属性交换。我特别想确保它与最大的提供商(例如Myopenid和Google)合作。
相关但不足,问题:
- 请求OpenID提供商的电子邮件地址 (以.NET为重点)
- OpenID属性交换 - 我应该使用它吗?
解决方案
Janrain有一个 打开ID PHP库, ,我认为是公司以公司为中心到OpenID的第一批图书馆之一。您提到与Janrain网站的Myopenid合作。
也就是说,我个人现在使用Zend Libraral(几年前我与Janrain Library一起玩),只是因为我通常使用Zend Framework开发。
如果提供商使用 OpenID简单注册扩展.
这个 Zend参考部分 指南显示了如何通过身份验证请求请求用户信息。这是为您需要编辑的示例代码:
//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类, ,在Zend库中有一个 功能请求斧头支持.
其他提示
我会看 Zend Framework的OpenID库,Zend_openid. 。您应该能够在没有整个框架的情况下使用它。
不隶属于 StackOverflow