2009-06-29 32 views
3

首先,讓我定義最終目標:Wordpress存儲用戶認證數據的方式背後有哪些細節?

我想使用Wordpress(版本2.8)來管理Web站點的身份驗證數據/證書和訪問控制。 Wordpress將用於大多數網站,但有些頁面將在Wordpress環境之外構建。這些頁面應該能夠使用用戶身份驗證數據存儲Wordpress數據庫作爲參考,以便自己做出有關訪問的決定。

所以,問題:

到底是如何做的WordPress存儲用戶身份驗證在其數據庫中的數據?


這個答案的第一部分很簡單,在Wordpress數據庫內部,有一個表格用來保存主要用戶數據。我相信此表的默認名稱是「wp_users」,但可以根據Wordpress的設置方式進行更改。該表包含分別保存用戶名和密碼數據的字段「user_login」和「user_pass」。

「user_login」只是一個純文本字段,因此很容易訪問,但密碼被醃製和散列。這導致了仍需要確定的第一件事:Wordpress用於生成存儲在「user_pass」中的字符串的salting和hashing過程是什麼?

保持打開的其他部分是Wordpress存儲其「角色」的地方/方式。在我的安裝中,這些角色默認爲:Administrator,Editor,Author,Contributor和Subscriber。我不明白的是這些角色如何與個人用戶相關聯。另外,這些角色可以改變嗎?


因此,要回顧一下,真正的問題是在三個部分:

1)什麼是WordPress使用轉置用戶的明文密碼存儲在該字符串「的具體方法「wp_users」數據庫表的「user_pass」列?

2)個人用戶與其各自的Wordpress「角色」之間的聯繫存儲在哪裏?

3)可以修改Wordpress中的「角色」以更改其名稱和/或添加/刪除它們?


注意:我意識到另一種方法是讓非Wordpress頁面檢查Wordpress cookie以確定訪問。我將根據這些問題創建另一個問題,但爲了解決這個問題,重點是非Wordpress頁面如何利用實際的Wordpress數據庫來決定訪問控制。

+0

您是否曾經基於用戶角色管理WP外的顯示頁面?小心分享你所做的事情? :) – Steven 2009-10-12 16:15:32

回答

2
  1. WordPress的使用Portable PHP password hashing framework。也看到這個問題:What type of hash does WordPress use?
  2. 默認情況下,該協會是在wp_usermeta桌子底下wp_user_level關鍵
  3. 不無插件(或不編輯編輯WordPress的代碼或數據庫)

你可能想看看bbPress的代碼,因爲它會共享Wordpress的用戶數據庫。

+0

1)我會看看那個鏈接。 (我搜索了一個體面的金額,但錯過了那一個。) 2)感謝指向「wp_tech_usermeta」,現在我在那裏,我看到了什麼事情。在2.8中,您需要查詢「user_id」,「meta_key」和「meta_value」列,其中「meta_key」=「wp_tech_capabilities」。 meta_value有些像a:1:{s:13:「administrator」; b:1;}或a:1:{s:10:「subscriber」; b:1;}。 3)嘿,我會和那裏的工作一起工作。 謝謝。 – 2009-06-29 18:11:05

相關問題