4

Devise の登録プロセスをカスタマイズして、ランダムなパスワードを生成し、確認メールと共に送信しようとしています。

私がすでに行ったことは、デフォルトの Devise の :validtable を上書きし、必要に応じて新しいランダム パスワードを生成することです。

  before_validation :password_generation

  def password_generation
       password_confirmation = password = Devise.friendly_token.first(7) if password.nil? || password.blank?
  end

今私の問題は、新しく生成されたランダムなパスワードを元の確認メールに含めることです。

新しいユーザー プロセスをカスタマイズしながら、Devise の元の使いやすさに追いつく可能性はありますか、それとも認証プロセスを最初から構築する必要がありますか?

ありがとう、ハダー。

4

1 に答える 1

2

(4 か月遅すぎますが、おそらく他の誰かがこれを使用できます)

ほとんどの場合、デフォルトの Devise メーラーとビューをプロジェクトにコピーし、 でconfig/initializers/devise.rbローカル クラスを指定する必要がありますconfig.mailer。その時点で、必要に応じてメールをカスタマイズできます。(Devise ではこの用語resourceを抽象化として使用していることに注意してください。ただし、ほとんどの場合、User のインスタンスを意味します)。

唯一の秘訣は、新しいユーザー アカウントが作成されてから電子メールが生成されて送信されるまでの間、生成されたパスワードを記憶する方法を見つけることです。ユーザーレコードを保存するときにDeviseが保存するのは、暗号化されたバージョンのパスワードです。確かにDeviseのロジックのパスをたどる必要がありますが、ユーザーのインスタンス変数、おそらくparamsまたはflashに格納できると思います。これには十分注意してください。この値をできるだけ短くする必要があります。おそらく、リクエストの存続期間だけです。

于 2012-09-26T19:57:43.590 に答える