Rails Devise:Doorkeeper: 身份验证,更新字段(设计)

Posted

技术标签:

【中文标题】Rails Devise:Doorkeeper: 身份验证,更新字段(设计)【英文标题】:Rails Devise:Doorkeeper: Authentication, updating fields (devise) 【发布时间】:2021-11-20 19:59:07 【问题描述】:

当门卫被用作使用 oauth 的授权提供者时,我如何更新设计字段。

我使用 Devise 的 Authenticate 方法如下所示。

def authenticate(email, password)
  user = User.find_for_authentication(email: email)
  if user.active_for_authentication?
    user = user.try(:valid_password?, password) ? user : nil
  else
    user = nil
  end
  user
end

但是,我想更新相应的设计用户字段以成功进行身份验证。这些领域包括: 登录计数 current_sign_in_at current_sign_in_ip last_sign_in_ip failed_attempts 等等 谢谢

【问题讨论】:

【参考方案1】:

使用设计中的可跟踪模块,我可以更新字段:

resource_owner_from_credentials do |_routes|
    ActiveRecord::Base.transaction do
      user = User.authenticate(params[:email], params[:password])
      user.update_tracked_fields!(request) unless user.nil?
    end
end

【讨论】:

以上是关于Rails Devise:Doorkeeper: 身份验证,更新字段(设计)的主要内容,如果未能解决你的问题,请参考以下文章

Rails:rails 模型的默认排序顺序?

markdown [rails:devise] Ruby on Rails的身份验证gem。 #ruby #rails

Rails:如何在 Rails 中为 Devise 设置密钥?

从 Rails 2 到 Rails 3 路由

Rails:在 Rails 控制器中捕获所有异常

如何在带有 Rails 4.2 的专用调试端口上使用工头启动 Rails?