2011-08-22 42 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轉換。哪些工作...所以我認爲施密茨解決方案將工作。 –