3

在我的 rails 应用程序中,我正在为我的身份验证系统使用设计。我有一种情况,我想使用基于用户密码的密钥来加密一些数据。我能想到的最简单的方法是在成功登录期间,从用户的纯文本密码(从登录表单传入)生成用户的私钥并将其存储在用户的会话中。我真的不想要求用户多次输入密码。

devise 是否提供了一种在成功登录后指定回调函数的方法?还是有更好的方法来做到这一点?

4

2 回答 2

10

http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/DatabaseAuthenticatable#after_database_authentication-instance_method

在您使用设计的用户模型中,创建一个 after_database_authentication 实例方法。

于 2012-07-17T16:48:01.597 回答
2

User假设您有带属性的设计资源password,那么您可以在登录后访问用户密码after_sign_in_path_for,成功登录后调用。

  # app/control,lers/application_controller.rb
  class ApplicationController < ActionController::Base
    def after_sign_in_path_for(resource)
      password = param[:user][:password]
      do_cool_stuf_with_password(password)
      #... 
      return url_for_root
   end
end
于 2018-10-14T05:59:55.653 回答