1

私は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>
4

1 に答える 1

-1

http://code.google.com/p/crypto-js/から cryptojs をダウンロードします。パスワード フィールドの ID が「password」で、送信ボタンの ID が「form_submit」の場合。次に、次の操作を行います。

<script type="text/javascript" src="crypto.js">
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js">
    <script>
    $("#form_submit").click(function){
    $("#password").val(CryptoJS.MD5($("#password").val()));
    });
    </script>
于 2012-09-25T04:05:41.120 に答える