bcrypt-ruby(has_secure_password) gemでパスワード確認をオフにすることはできますか?has_secure_passwordでパスワードを確認するオプション
答えて
変更パスワードバリデーションはでのみ有効です。作成アクション。 password_confirmationフィールドと認証がトリガされません:あなたは、すべてのパスワードの確認をしたくない場合は
validates :password, presence: true,
length: { minimum: 6 },
on: :create
has_secure_password
は実際にはActiveModelの一部であり、それ自体は宝石ではありません。 bcrypt gemはpassword_digest属性をハッシュするために使用されます。
has_secure_password方法は、実際に(source here)が非常に短く、確認するためにパスワードを要求する1行が含まれますので、
# File activemodel/lib/active_model/secure_password.rb, line 34
validates_confirmation_of :password
validates_presence_of :password_digest
を、あなたのconfig /初期化子に修正版を作成することにより、has_secure_passwordメソッドをオーバーライドフォルダが機能するはずです。 「validates_confirmation_of」行をコメントアウトすると、パスワード確認がオフになります。また、あなたの質問でやろうとしたようにオプションをハッシュするために、メソッドを書き直すこともできます。
has_secure_passwordメソッドをオーバーライドする手順を教えてください。 – medBo
あなたは、単純に設定することはできません。
よりここに調べる:https://github.com/rails/rails/pull/5131
Railsの4編集:このparamsは強いが導入されて以来、それ以上は関係ありません。サインアップフォームから確認フィールドを削除するだけで、パラメータは渡されません。
投稿していただきありがとうございます! – LandonSchropp
- 1. レール4 has_secure_passwordレンダリングパスワードの確認オプション
- 2. Has_secure_password rails password_digestをパスワードに変更する
- 3. Rails 3.2でhas_secure_passwordを使用する際にパスワード/確認の検証を無効にするには?
- 4. Has_secure_passwordパスワードなしのBcrypt
- 5. パスワードとjavascriptエラーでパスワードの確認を確認しますか?
- 6. phpパスワード確認
- 7. jqGridパスワード確認
- 8. perlパスワード確認
- 9. ExtJS - パスワード/パスワードの確認Javascript
- 10. サーバとjqueryでパスワードを確認する
- 11. パスポートでのパスワード確認
- 12. パスワードとパスワードを確認する方法は同じですか?
- 13. angularjsパスワードの確認は、確認メッセージ
- 14. Symfony2 - ログイン確認パスワード
- 15. パスワード確認のヘルプ
- 16. パスワード確認PHPフォーム
- 17. バリデータ、パスワードの確認
- 18. パスワードをPowerShellのパスワードで確認する方法
- 19. パスワードを確認する方法cakephpをハッシュで確認する方法
- 20. web2py形式のパスワードを確認する
- 21. パスワードの最小長を確認する
- 22. IUSRのパスワードを確認する方法
- 23. symfony2のパスワードを確認する
- 24. Asp.Net管理者パスワードを確認する
- 25. パスワードヒント内のパスワードを確認する
- 26. パスワードReactive Forms Angularを確認する4
- 27. カスタムバリデーターでパスワードの強さを確認
- 28. Django、パスワード確認でユーザープロフィールを更新
- 29. パスワードを再度確認する方法(パスワードのみ)
- 30. パスワードの一致確認エラー
これを行うと、ユーザーがパスワードを変更できるようにするメカニズム(パスワードの忘れなど)がある場合、パスワードが短すぎる新しいパスワードを設定できるようになります。その理由は、パスワードの更新時に長さの検証が開始されないためです。 –