脚本宝典收集整理的这篇文章主要介绍了在PHP中创建OpenID提供程序,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我认为,由于OpenID被表示为一个URL,我将要做一些像:http://login.mydomain.com/username
我设置了一个子域,并创建了一个htaccess,将所有URL重定向到/login.PHP?username=[username]
我看到它的方式,告诉我,如果我错了,有人去说StackOverflow,他们进入http://login.mydomain.com/myUsername.他们到达我的服务器上的一个页面,要求他们的密码(因为我已经知道他们的用户名),我检查它匹配,并返回键?
人们在线推荐使用Zend_OpenId_PRovider.我一直在阅读他们的文档(http://framework.zend.com/manual/en/zend.openid.provider.html),但我觉得很困惑.他们没有用户登录/密码存储在数据库中的真实世界示例.
我也看过PHP-open-id(http://github.com/openid/php-openid),但也没有帮助.
看看Zend_OpenId_Provider的构造函数
public function __construct($LOGinUrl = null,$trustUrl = null,Zend_OpenId_Provider_User $user = null,Zend_OpenId_Provider_Storage $storage = null,$sessionTTL = 3600)
在http://framework.zend.com/manual/en/zend.openid.provider.html的例子中,它们没有传递任何参数.这意味着默认使用Zend_OpenId_Provider_Storage_File提供程序.再次,这个将在TEMP目录(/ tmp在Linux上)的文件中默认存储.
基本上这个例子应该是完全正常的.您可以通过调用$server-> register($someid,$somepassword)来注册更多的用户;
但是,由于它在临时目录中存储每个默认的帐户,所以您应该将该行替换为这样(如果可以将文件存储在文件中):
$dir = "/VAR/lib/myopenidusers"; mkdir($dir); $server = new Zend_OpenId_Provider(null,null,new Zend_OpenId_Provider_Storage($dir) );
现在,如果您希望将用户存储在数据库中,则必须实现自己的Provider_Storage.
看一下抽象类抽象类Zend_OpenId_Provider_Storage.这是您必须实现的方法.
以上是脚本宝典为你收集整理的在PHP中创建OpenID提供程序全部内容,希望文章能够帮你解决在PHP中创建OpenID提供程序所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。