首先,让我来定义最终目标:
我想使用Wordpress(2.8版)来管理网站的身份验证数据/凭据和访问控制。 Wordpress将用于大部分网站,但有些页面将在Wordpress环境之外构建。这些页面应该能够使用存储在Wordpress数据库中的用户身份数据作为参考来做出自己的访问决策。
所以,问题是:
Wordpress究竟如何在其数据库中存储用户身份验证数据?
这个答案的第一部分很简单,在Wordpress数据库中,有一个表保存主要用户数据。我相信这个表的默认名称是“wp_users”,但可以根据Wordpress的设置方式进行更改。该表包含“user_login”和“user_pass”字段,分别包含用户名和密码数据。
“user_login”只是一个纯文本字段,因此很容易访问,但密码是盐渍和散列的。这导致了第一件事仍然需要确定:Wordpress用于生成存储在“user_pass”中的字符串的salting和散列过程是什么?
保持开放的另一部分是Wordpress存储其“角色”的地方/方式。在我的安装中,这些角色默认为:管理员,编辑,作者,贡献者和订阅者。我没看到的是这些角色如何与个人用户相关联。此外,这些角色可以改变吗?
因此,回顾一下,真正的问题分为三个部分:
1)Wordpress使用什么方法将用户的纯文本密码转换为存储在“wp_users”数据库表的“user_pass”列中的字符串?
2)个人用户与各自的Wordpress“角色”之间的链接存储在哪里?
3)可以修改Wordpress中的“角色”以更改其名称和/或添加/删除它们吗?
注意:我意识到另一种方法是让非Wordpress页面检查Wordpress cookie以确定访问权限。我将按照这些方式创建另一个问题,但是出于这个问题的目的,重点是非Wordpress页面如何利用实际的Wordpress数据库来决定访问控制。
答案 0 :(得分:2)
wp_usermeta
密钥wp_user_level
表中
您可能希望查看bbPress的代码,因为它将共享Wordpress的用户数据库。