根据条件保存到LocalStorage



我已经编写了两个要合并为一个的脚本。脚本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",并将您登录到

  1. 永远不要在客户端上存储密码
  2. 永远不要存储未加密的密码!

  3. 要将电子邮件地址存储在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),并在服务器端对其进行验证。没有在每次加载页面时提交表单,也没有在客户端存储凭据。

最新更新