设计:成功登录后勾选

时间:2012-07-17 16:41:39

标签: ruby-on-rails devise

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

设计是否提供了一种在成功登录后指定回调函数的方法?或者有更好的方法吗?

2 个答案:

答案 0 :(得分:9)

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

在您使用devise的用户模型中,创建after_database_authentication实例方法。

答案 1 :(得分:1)

假设您拥有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