2011-08-22 43 views
2

我期待为Codeigniter建立一个库,与Wordpress数据库进行通信以提供诸如登录,注销和注册等功能。与通过Wordpress网站登录相比,通过Codeigniter应用登录应该没有什么不同。所以我可以在两个人之间切换,而无需登录两次。Codeigniter(或其他框架)的Wordpress认证库

我不打算“将Wordpress与Codeigniter集成”以及任何其他人都在问的问题。我只是想使用Wordpress数据库来验证用户,然后创建正确的cookie等

如果有人知道任何项目已经存在,这将有助于我,当我走上这一点,我想听听他们。

回答

3

This is an example似乎需要的整合。这不是CI,但它只是一些功能,可以作为一个起点。


EDITED

重新审视这个问题,在我看来,你问,因为它是麻烦,因为你必须重写的东西,WP做得非常好。

无论哪种方式,Cookie的名称都由网站的前缀和编译ID组成,它只是博客URL的md5。定义在文件“wp-includes/default-constants.php”中。

的一个你感兴趣的可以这样使用:

//$wp_url like this: http://domain.com, Exactly as written in the configuration 
$cookie= "wordpress_logged_in_".md5($wp_url); 

这个cookie的内容将是这样的:管理| 7C1314493656 | 7Cdd41a2cd52acbaaf68868c850f094f9f

$cookie_content= explode("|",$this->input->cookie($cookie,true)); 
if(count($cookie_content)>0){ 
    $user_name= $cookie_content[0]; 
}else{ 
    //No user identified, do something... 
} 

奖金包

在研究WP代码是w选择一个小型图书馆,直接在CI中使用WP登录和访问级别。在bitbucket GPL2许可(如WP)中可用:CiWp-Auth

+1

不期待自己建造这个图书馆。非常感谢您的分享。在分解的部分可以找到类似的项目:'http:// blog.marketingadept.com/integrate-codeigniter-and-wordpress /'。我现在对这个项目感到兴奋。谢谢! – user13186

+0

此代码已过时。我很高兴能有用。问候。 –

0

WordPress使用MD5加密他们的密码,这样您可以在MD5之后用用户名和密码查询wp_users表。查询会是这个样子:

$credentials = array(
    'user_login' => $this->input->post('username'), 
    'user_pass' => md5($this->input->post('password')) 
); 
$this->db->where($credentials); 
$user = $this->db->get('wp_users'); 

应该返回您正在寻找在$user变种的用户帐户信息,然后你可以使用它就像任何其他的认证方法。

+0

当然,但底层的身份验证方法需要像WP一样工作,创建相同的cookie等,否则我可以登录WP,但同时不会登录到Codeigniter应用程序。我还需要研究忘记的密码功能是如何工作的,以及如果以前没有这样做。因为我不想简单地验证用户与WP数据库,我希望Codeigniter验证系统能够与WP无缝协作。 –

+0

这可能不起作用。 Wordpress使用[phpass](http://www.openwall.com/phpass/)库,我认为它只使用MD5作为Blowfish和Extended DES不可用的最后手段。如果它确实使用MD5,则密码将被腌制,并且我认为将会运行多次MD5迭代。 –

+0

我通过使用phpMyAdmin多次更改了自己的密码,并要求它将我的明文密码MD5转换。哪些工作...所以我认为施密茨解决方案将工作。 –