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