我们有一个Wordpress网站,我们将使用cakePHP框架逐步重建。我们将逐步替换Wordpress站点的不同部分,因此我们需要实现某种单点登录,以便在两个框架并行运行时允许跨两个框架进行授权。
我们有一个很好的策略来解决这个问题。简而言之,我们将在两个不同的表中复制所有用户行:一个用于Wordpress的表(wp_users
)和另一个用于Cake的表(users
)。 [更多细节概述here(如果您感兴趣的话)。]
这意味着当我们在Wordpress或Cake中创建用户时,我们也会在另一个表中创建相同的用户。这“几乎无害”...
我们正在努力解决Wordpress和Cake之间的不同密码散列策略。为了在两个表中保存相同的用户密码,我们需要弄清楚如何哈希它,以便每个相应的框架可以检查它。
Wordpress使用非常先进的散列算法:PHPass。 Cake(默认情况下)似乎提供了更多传统算法的选择:SHA1,md5,blowfish ......以及可选的salting。我们坚持认为Wordpress为新用户生成/发送默认密码,然后立即保存数据库中的哈希版本。除非我们能够弄清楚如何复制所有Wordpress授权协议(对于新的Cake用户来说似乎有点令人生畏),否则这个密码版本的密码对于蛋糕来说是没用的。
这个问题有一个优雅的解决方案吗?
答案 0 :(得分:0)
我建议将用户管理集中在Wordpress或CakePHP中,直到完成向CakePHP的迁移。
从CakePHP 2.3开始,bcrypt / blowfish正式支持散列密码; http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#using-bcrypt-for-passwords
但是,如果您已经启用了单点登录,为什么暂时不让密码同步?迁移到CakePHP后,请考虑以下选项;