在某种情况下保存到LocalStorage

时间:2015-02-18 11:23:28

标签: javascript jquery local-storage

我编写了两个我希望合并为一个脚本的脚本。脚本1用于检查电子邮件和密码是否正确,它会显示成功消息"正确"它会让你登录。脚本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"并登录

1 个答案:

答案 0 :(得分:1)

  1. 从不将密码存储在客户端上!
  2. 从不存储未加密的密码!

  3. 要将电子邮件地址存储在localStorage中,您可以使用以下代码段:

    (文档)$。就绪(函数(){   $("#form1中&#34)。在('提交',功能(事件){     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());
        }
      }
    });
    

    }); });

  4. 注意:您必须自己清理localStorage。如果要存储数据以便进一步识别,请在cookie中使用sessionId,或使用sessionStorage保存临时数据。

    修改:要在页面加载后提交表单,您可以尝试以下操作:

    $(function(){
      var eAddr = localStorage.getItem('eaddress');
      if (eAddr !== null) {
        $('#email').val(eAddr);
        $('#form1').trigger('submit');
      }
    });
    

    注意:如果您在客户端上存储加密的密码并通过表单提交,则身份验证过程安静不安全。

    我认为您的身份验证设计有误。您应该使用身份验证cookie(如会话cookie)并在服务器端验证它。每次页面加载时都不提交表单,也不在客户端存储凭据。