1

我正在使用魔法宝石并尝试重新验证用户以在“我的帐户”部分更改他们的密码。所以基本上表格上有 old_password、password 和 password_confirmation。所以基本上,用户已经登录,但我想进行额外的身份验证检查以重置用户的密码,以获得额外的安全级别。

我的问题是:我如何通过巫术实现这一目标?我正在浏览他们的源代码,并在我认为是用户对象上遇到了“身份验证”方法,但我该如何称呼它(注意,我对 rails 相对较新,并且仍然接受 ruby​​ 语法)

这就是我所拥有的:

if (@password_reset.valid? && current_user.authenticate(@password_reset.email, @password_reset.old_password))

以及用户模型的相关部分

class User < ActiveRecord::Base
  authenticates_with_sorcery!
...
4

1 回答 1

1

Geez,我很惊讶没有人回答这个问题,它最终变得非常简单。事实证明,我所要做的就是调用类方法而不是使用实例,如下所示。

User.authenticate(@password_reset.email, @password_reset.old_password, false)
于 2013-11-27T10:14:16.437 回答