【问题标题】:One users table for cakephp 1.3 and 2.x apps?cakephp 1.3 和 2.x 应用程序的一个用户表?
【发布时间】:2013-02-02 21:49:12
【问题描述】:

正如标题所说,我有 2 个不同的 cakePHP 应用程序,但两者的用户是相同的。我希望两个应用程序都有一个登录/通行证,但我不确定如何去做。当他们登录一个时,如果他们在同一浏览器的不同选项卡中登录另一个,它会注销另一个。我会使用 Cookie 吗?是否可以像 1.3 应用程序一样告诉 cake 2.x 应用程序解密或任何密码?

【问题讨论】:

    标签: cakephp authentication


    【解决方案1】:

    确保您已将哈希函数添加到用户的模型中。他们在 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); 来帮助自己调试您的问题,然后尝试登录并比较每个应用程序中请求的用户名和密码。

    【讨论】:

      【解决方案2】:

      您需要在 /config/database.php 中创建另一个数据库配置

      并在UserModel 中添加useDbConfig 属性。

      更多信息请见documentation

      编辑:

      /config/core.php 中的 Security.salt 设置对于两个应用程序应该相同: Configure::write('Security.salt', 'same for app A as for app B');

      【讨论】:

      • 我已经设置了数据库配置文件。 cake 2.x 应用程序可以访问 1.3 应用程序的用户表,但它没有正确验证?即使使用正确的用户登录。我希望两个应用使用相同的登录名。
      • 他们仍然不匹配。 1.3 创建的用户密码以 5546e 开头,但是当我尝试在 2.x 应用程序中使用该登录名时,它显示密码以 5984e 开头。似乎也没有在其他任何地方指定加密。
      • 有什么方法可以查看/比较两个应用程序之间的哈希值吗?或者为 cake 2.x 做类似 book.cakephp.org/1.3/en/The-Manual/Core-Components/… 的事情?
      • 您需要使用已创建用户的应用程序中的盐。您是否尝试过创建一个新用户,然后使用这两个应用程序登录?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 2020-01-16
      相关资源
      最近更新 更多