2

パスワードを忘れたユーザーのために、ActionMailerを介してメールを送信しようとしています。彼らは自分の電子メールを入力して送信を押すと、電子メールにパスワードが記載された電子メールが送信されることになっています。しかし、私はhas_secure_passwordを持っているので、password_digestがパスワードを抽出することを許可していないと推測しています。次のようなメールを受け取りました。

Your login information:

Email: edmai@syr.edu

Password: 

つまり、railsがパスワードの取得を阻止するために何かをしているようです。これが私のファイルです:

メールテンプレート:

Dear <%= @user.name %>,

<p>
    You recently made a request for a lost password. Please remember to keep your passwords recorded in a safe place.
</p>

<p>
    Your login information: <br>
    Email: <%= @user.email %> <br>
    Password: <%= @user.password %> <br>
</p>

<p>
    Sincerely, <br>
    Pholder Staff
</p>

ユーザーモデル

class User < ActiveRecord::Base

has_secure_password
attr_accessible :email, :name, :password, :password_confirmation, :profilepic
validates_presence_of :password, :on => :create

これ以上私のファイルが必要な場合はお知らせください

4

1 に答える 1

2

has_secure_passwordbcryptでユーザーのパスワードをハッシュします。これは、プレーンテキストのパスワードがデータベースに保存されないようにするためです(決して起こらないはずのことです)。メソッドに関するいくつかの情報はここにあります:http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html

@apneadivingが言ったように、パスワードをリセットし、ユーザーにパスワードリセットリンクを送信する必要があります。

これらの2つのRailscastを順番に見てください、それらはあなたを助けるかもしれません:

  1. http://railscasts.com/episodes/270-authentication-in-rails-3-1
  2. http://railscasts.com/episodes/274-remember-me-reset-password
于 2012-10-23T21:05:49.883 に答える