首先,让我定义最终目标:
我想要 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 数据库来做出访问控制决策。
- WordPress 使用便携式 PHP 密码哈希框架 http://www.openwall.com/phpass/。另请参阅这个问题:WordPress 使用什么类型的哈希? https://stackoverflow.com/questions/1045988/what-type-of-hash-does-wordpress-use
- 默认情况下,该关联位于
wp_usermeta
表下的wp_user_level
key
- 不能没有插件(或没有编辑编辑Wordpress的代码或数据库)
您可能想查看以下代码bbPress http://bbpress.org/因为它将共享 Wordpress 的用户数据库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)