gpt4 book ai didi

javascript - 如何在触发 Rails form_tag 提交操作之前将 MD5 应用于密码?

转载 作者:行者123 更新时间:2023-11-28 10:59:00 25 4
gpt4 key购买 nike

我是 Rails 新手。

我在用户 Controller 中使用has_secure_password。我意识到它使用河豚来安全地存储密码,但我希望在密码离开浏览器客户端之前对其进行加密。如果这意味着密码被加密两次 - 我觉得没问题。

那么,在像下面这样的简单登录表单中,如何在提交表单之前调用我已经将 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>

最佳答案

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>

关于javascript - 如何在触发 Rails form_tag 提交操作之前将 MD5 应用于密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12575909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com