【发布时间】:2013-09-10 05:03:39
【问题描述】:
我正在制作一个需要依赖另一个现有应用程序来获取其登录信息的 CakePHP 2.2.3 应用程序。用户名/密码组合存在于另一个数据库/服务器上,我已经设置了我的 CakePHP 应用程序以在他们第一次登录我的界面时创建新用户。流程如下:
- 用户首次登录,提供用户名和密码。 CakePHP 用户记录还不存在
- 系统检查另一端是否存在具有相同(已清理)用户名的用户
- 如果用户确实存在,那么我们获取密码并比较密码以查看它们是否匹配。
- 如果密码匹配,则对所提供的内容进行哈希处理并保存用户记录
- 登录新创建的用户
这为我们解决了一些问题,主要是有多个地方供用户登录以执行某些操作。
我的问题似乎是 CakePHP 在对密码进行哈希处理时得到的值似乎会随着时间而改变。因此,它不是使用密码登录用户,而是在他们登录的每一天创建一个新的用户记录。我遇到了一个问题,昨天我无法使用特定用户登录......所以我检查了login() 操作被视为密码的哈希值。
特定用户的密码是'roads'
昨天,哈希是:988042d7f4e62760238d895472ecaf1844094f9f
今天,当我对道路进行哈希处理时,我得到:a8318e7bbe8ee5efc59f53b4ede4d80dc0495c6d
我真的不知道从哪里开始寻找会发生这种情况的原因。为了使我的开发向前发展,我所能做的就是更改我要登录的用户记录的密码的哈希值。这是我做这个的第二天。 config/core.php 中的安全哈希或盐值有什么我可能做错的吗?
我愿意:
- 找出哈希值发生变化的原因
- 更改 Auth 组件以使用其他数据库登录用户
但我不知道从哪里开始
【问题讨论】:
-
1.我从未听说过哈希会自行改变。您和其他开发人员是否正在工作并上传 2 diff。 core.php 文件的版本? 2. 让我们看看你用来获取
roads的散列版本的代码。 3. 你用的是什么蛋糕版本? -
在 app/Config/core.php 中定义了盐。它说 Configure::write('Security.salt', 'xxxxx...');但它总是一样的。
-
暂时记录传递给Security::hash的参数,他们可能会说。例如,也许一个函数/动作正在使用不同的哈希算法,甚至是不同的盐。最后,如果您编写一些单元测试,它们可能会揭示发生了什么。
标签: cakephp authentication hash