属性更新后露营网络应用程序中的身份验证失败

authentication fails in camping web app after attribute update

我的 Camping 应用程序有问题,我已根据此 (http://nycda.com/blog/basic-user-authentication-model-in-rails-4/) 教程为其设置了一个身份验证系统。

我想学习如何从头开始设置这样的系统,以便更好地理解底层逻辑。有了这个系统,用户可以毫无问题地创建他们的帐户并登录和注销,并且身份验证通过。

我花了一段时间才确定身份验证问题发生在数据库中更新用户角色之后。每个用户在注册时都有一个默认角色,管理员可以在注册后更改。然后用户认证失败。

在此之前没有错误,用户可以浏览应用程序。如果我检查数据库,我会看到正在更新的用户角色。

问题是否与数据库更新有关?

我正在使用 camping with bcrypt 和 activerecord 4.0.4。请看这个要点:camping auth

感谢您的帮助。

此致, 塞巴

仅简要浏览了代码,我猜测更新角色会导致重新创建密码哈希,因为 encrypt_password 消息中的逻辑似乎无法阻止这种情况的发生。

您可以通过查看数据库中的散列在创建和角色更新之间是否发生变化来验证这一点。为防止这种情况,您可以尝试将该代码包装在该方法的 "unless password.nil?" 条件中。

希望对您有所帮助。