0

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

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

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

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

问题与数据库更新有关吗?

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

谢谢您的帮助。

问候,塞巴

4

1 回答 1

0

只是简单地浏览了代码,我猜想更新角色会导致重新创建密码哈希,因为 encrypt_password 消息中的逻辑似乎并没有阻止这种情况的发生。

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

希望这可以帮助。

于 2015-03-14T21:40:31.853 回答