我已经编写了两个要合并为一个的脚本。脚本1用于检查电子邮件和密码是否正确,它会显示一条成功消息"正确"并让您登录。脚本2是我用来将电子邮件和密码存储在本地存储中的
脚本1
$(document).ready(function(){
$("#form1").on('submit',function(event){
event.preventDefault();
data = $(this).serialize();
$.ajax({
type: "POST",
url: "log.asp",
data: data,
success: function(data) {
$('#log_msg').html(data);
var result = $.trim(data);
if(result==="Correct"){
window.location = 'source.asp';
}
}
});
});
});
脚本2
$(function() {
var
$email = $('#email'),
$password = $('#password'),
localEmail = localStorage.getItem("eaddress"),
localPwd = localStorage.getItem("pwd");
// SAVE VARIABLES TO LOCAL STORAGE
$('#form1').on('submit', function() {
localStorage.setItem("eaddress", $email.val());
localStorage.setItem("pwd", $password.val());
});
});
现在我想将两者合并在一起,只有在成功消息相等的情况下,它才应该将电子邮件和密码保存在本地存储中到"Correct"
,并将您登录到
- 永远不要在客户端上存储密码
-
永远不要存储未加密的密码!
-
要将电子邮件地址存储在localStorage中,您可以使用以下代码段:
$(document).ready(function){$("#form1").on("submit",函数(事件){event.prventDefault();
var data = $(this).serialize(); $.ajax({ type: "POST", url: "log.asp", data: data, success: function(data) { $('#log_msg').html(data); var result = $.trim(data); if(result==="Correct"){ localStorage.setItem('eaddress', $('#email').val()); } } });
});});
注意:您必须自己清理localStorage。如果要存储数据以供进一步识别,请在cookie中使用sessionId,或使用sessionStorage保存临时数据。
编辑:要在页面加载后提交表单,您可以尝试以下操作:
$(function(){
var eAddr = localStorage.getItem('eaddress');
if (eAddr !== null) {
$('#email').val(eAddr);
$('#form1').trigger('submit');
}
});
注意:如果您将加密的密码存储在客户端上并通过表单提交,则身份验证过程非常不安全。
我认为您的身份验证设计是错误的。您应该使用身份验证cookie(类似于会话cookie),并在服务器端对其进行验证。没有在每次加载页面时提交表单,也没有在客户端存储凭据。