我的露营应用程序存在问题,我已根据此(http://nycda.com/blog/basic-user-authentication-model-in-rails-4/)教程设置了身份验证系统。
我想学习如何从头开始设置这样一个系统,以便更好地理解底层逻辑。有了这个系统,用户就可以创建他们的帐户,登录和注销,而不会出现问题和认证。
我花了一些时间来确定在数据库中更新用户角色后发生身份验证问题。每个用户在注册时都有默认角色,经理可以在注册后更改。之后,用户身份验证失败。
在此之前没有错误,用户可以浏览应用程序。如果我检查数据库,我会看到正在更新的用户角色。
问题是否与数据库更新有关?
我正在使用bcrypt和activerecord 4.0.4进行露营。请参阅此要点:camping auth
感谢您的帮助。
此致 西巴
答案 0 :(得分:0)
只是简单地查看了代码,我猜测更新角色会导致重新创建密码哈希,因为encrypt_password消息中的逻辑似乎不会阻止这种情况发生。
您可以通过查看数据库中的哈希是否在创建和角色更新之间发生更改来验证这一点。为了防止这种情况,您可以尝试将该代码包装在“除非password.nil?”之外。该方法的条件。
希望这有帮助。