私はRailsの初心者です。
ユーザーコントローラーで has_secure_password を使用しています。パスワードを安全に保存するためにblowfishを適用していることはわかっていますが、ブラウザクライアントを離れる前にパスワードを暗号化したいです。これがパスワードが 2 回暗号化されていることを意味する場合、それは問題ありません。
では、以下のような単純なログイン フォームで、フォームが送信される前に、パスワードに MD5 を適用する Javascript 関数を呼び出す方法を教えてください。確かに - 「標準」HTML と onSubmit() JavaScript 呼び出しを送信するだけで済みますが、これを「Rails Way」で行う方法は確かにあります。どのように?
前もって感謝します!
<h1>Log In</h1>
<%= form_tag sessions_path do %>
<div class="field">
<%= label_tag :email %><br />
<%= text_field_tag :email, params[:email] %>
</div>
<div class="field">
<%= label_tag :password %><br />
<%= password_field_tag :password %>
</div>
<div class="actions"><%= submit_tag "Log In" %></div>
<% end %>
アップデート:
これを行うための「Rails Way」がないように見えるので、Samar からの提案に従って、フォームに明示的に ID を指定した後、jQuery を使用してフォーム クリック イベントにリスナーを追加しました。以下は、変更とタイプミスの修正を含む完全なコード セグメントです。独自の MD5 ライブラリを使用していることに注意してください。
<h1>Log In</h1>
<%= form_tag sessions_path, :id => 'user_login_form' do %>
<div class="field">
<%= label_tag :email %><br />
<%= text_field_tag :email, params[:email] %>
</div>
<div class="field">
<%= label_tag :password %><br />
<%= password_field_tag :password %>
</div>
<div class="actions"><%= submit_tag "Log In" %></div>
<% end %>
<script type="text/javascript">
$("#user_login_form").click(function(){
$("#password").val(EncryptMD5($("#password").val()));
});
</script>