【发布时间】:2013-02-02 21:49:12
【问题描述】:
正如标题所说,我有 2 个不同的 cakePHP 应用程序,但两者的用户是相同的。我希望两个应用程序都有一个登录/通行证,但我不确定如何去做。当他们登录一个时,如果他们在同一浏览器的不同选项卡中登录另一个,它会注销另一个。我会使用 Cookie 吗?是否可以像 1.3 应用程序一样告诉 cake 2.x 应用程序解密或任何密码?
【问题讨论】:
正如标题所说,我有 2 个不同的 cakePHP 应用程序,但两者的用户是相同的。我希望两个应用程序都有一个登录/通行证,但我不确定如何去做。当他们登录一个时,如果他们在同一浏览器的不同选项卡中登录另一个,它会注销另一个。我会使用 Cookie 吗?是否可以像 1.3 应用程序一样告诉 cake 2.x 应用程序解密或任何密码?
【问题讨论】:
确保您已将哈希函数添加到用户的模型中。他们在 2.x 中删除了自动哈希以使其更加灵活。 您的 2.x user.php 模型文件中的类似内容...
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
通过在您的 appController beforeFilter() 中添加 pr($this->data); 来帮助自己调试您的问题,然后尝试登录并比较每个应用程序中请求的用户名和密码。
【讨论】:
您需要在 /config/database.php 中创建另一个数据库配置
并在UserModel 中添加useDbConfig 属性。
更多信息请见documentation
编辑:
/config/core.php 中的 Security.salt 设置对于两个应用程序应该相同:
Configure::write('Security.salt', 'same for app A as for app B');
【讨论】: