我们正在为管理员和普通用户使用单个表。我们需要以哈希格式保存管理员密码,但以纯文本格式保存用户密码。如何使用CakePHP 3.0
EDITED : 用户的用户名和密码用作另一个站点上的登录凭据作为API。所以我需要保存密码而不使用cakephp 3.0的散列方法
答案 0 :(得分:1)
您需要使用beforeSave
方法。
//在模型中
function beforeSave()
{
// put the conditions here
return true;
}
答案 1 :(得分:1)
正如您在评论中多次指出的那样,您绝不应将密码作为纯文本存储在数据库中。这与您的应用程序是否直接使用它无关。正如Anthony在对你的问题的评论中提到的那样,你应该考虑加密加密的密码,这些密码可以被你的应用程序反转。
您还应该检查您使用的API是否提供了使用访问令牌登录的更安全方法。
如果你想坚持存储纯文本密码,那么你应该考虑将它们存储在散列的单独列中。例如: -
id | username | password | api_login_password
通过将某些记录与加密密码混合而不是其他记录来混合使用password
列并不是一个好主意。
使用这样的架构,您不需要散列api_login_password
,而是继续散列应用程序的密码。大概你有CakePHP设置来哈希用户实体的密码,这不会影响api_login_password
列。