3

Railsアプリでは、認証システムにdeviseを使用しています。ユーザーのパスワードに基づくキーを使用して一部のデータを暗号化したいという状況があります。これを行うために私が考える最も簡単な方法は、サインインが成功したときに、プレーンテキストのパスワード(ログインフォームから渡された)からユーザーの秘密鍵を生成し、それをユーザーのセッションに保存することです。ユーザーにパスワードの入力を2回以上求めたくはありません。

deviseは、ログインが成功した後にコールバック関数を指定する方法を提供しますか?それとも、これを行うためのより良い方法はありますか?

4

2 に答える 2

10

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

deviseを使用しているユーザーモデルで、after_database_authenticationインスタンスメソッドを作成します。

于 2012-07-17T16:48:01.597 に答える
2

Userあなたが属性付きのDeviseリソースを持っていると仮定すると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 に答える