根据条件保存到 LocalStorage
Save to LocalStorage on a condition
我编写了两个我想合并为一个的脚本。脚本 1 用于检查电子邮件和密码是否正确,它会显示一条成功消息 "Correct" 并让您登录。脚本 2 是我用来将电子邮件和密码存储在 localstorge
中的
脚本 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());
});
});
现在我想将两者合并在一起,如果成功消息相等,它应该只将电子邮件和密码保存在 localstorge 中
至 "Correct"
并登录
- 从不 在客户端存储密码!
从不 存储未加密的密码!
要将电子邮件地址存储在 localStorage 中,您可以使用此代码段:
$(文档).ready(函数(){
$("#form1").on('submit',函数(事件){
event.preventDefault();
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)并在服务器端验证它。无需在每次加载页面时提交表单,也无需在客户端存储凭据。
我编写了两个我想合并为一个的脚本。脚本 1 用于检查电子邮件和密码是否正确,它会显示一条成功消息 "Correct" 并让您登录。脚本 2 是我用来将电子邮件和密码存储在 localstorge
中的脚本 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());
});
});
现在我想将两者合并在一起,如果成功消息相等,它应该只将电子邮件和密码保存在 localstorge 中
至 "Correct"
并登录
- 从不 在客户端存储密码!
从不 存储未加密的密码!
要将电子邮件地址存储在 localStorage 中,您可以使用此代码段:
$(文档).ready(函数(){ $("#form1").on('submit',函数(事件){ event.preventDefault();
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)并在服务器端验证它。无需在每次加载页面时提交表单,也无需在客户端存储凭据。