2011-12-14 58 views
4

我看到了關於在cookie中存儲登錄信息的例子。試圖在cookie中保存用戶名/密碼; JQuery

http://eisabainyo.net/weblog/2009/02/20/store-login-information-in-cookie-using-jquery/

嘗試過,但似乎無法得到它的工作。我不得不插件,我沒有看到這裏有什麼問題。

該頁面的Login.aspx指向AccountMenu.aspx

編輯它是一個DEMO,測試,其他什麼名字了。本網站將永遠不會上線。我知道這不是做這件事的方法。我正在尋求幫助來解決我的問題,而不是人們告訴我這是糟糕的設計。

(...)

<div data-role="content"> 

    <form action="AccountMenu.aspx" method="post" id="login"> 

     <label for="email">Email</label> 
     <input type="text" id="email" name="email"/> 

     <label for="password"><%= GetLabel("password") %></label> 
     <input id="password" type="password" name="password" /> 

     <div data-role="fieldcontain"> 
     <fieldset data-role="controlgroup"> 
      <input type="checkbox" name="remember" id="remember" class="custom" checked="true" /> 
      <label for="remember">Remember me ?</label> 
     </fieldset> 
     </div> 

     <input type="hidden" name="submit" value="submitted" /> 
     <button type="submit" name="submit" id="submit" data-theme="a" value="<%= GetLabel("new-login") %>" ></button> 
     <button type="button" disabled="disabled" data-theme="a" value="<%= GetLabel("new-account") %>"></button>   

    </div> 

</form> 

    <script type="text/javascript"> 

     if ($('#remember').attr('checked')) 
     { 
      var email = $('#email').attr("value"); 
      var password = $('#password').attr("value"); 

      // set cookies to expire in 14 days 
      $.cookie('email', email, { expires: 14 }); 
      $.cookie('password', password, { expires: 14 }); 
      $.cookie('remember', true, { expires: 14 });     
     } 
     else 
     { 
      // reset cookies 
      $.cookie('email', null); 
      $.cookie('password', null); 
      $.cookie('remember', null); 
     } 

     var remember = $.cookie('remember'); 
     if (remember == 'true') 
     { 
      var email = $.cookie('email'); 
      var password = $.cookie('password'); 
      // autofill the fields 
      $('#email').attr("value", email); 
      $('#password').attr("value", password); 
     } 

    </script>  

+15

罷了不要將用戶名或密碼存放在曾經一個cookie實際調用的代碼。不要這樣做。故事結局。 – zzzzBov 2011-12-14 17:34:39

+0

如果您將我的密碼儲存在cookie中,我將不會使用您的網站! – 2011-12-14 17:34:46

回答

12

你需要時,用戶在表單

$(document).ready(function() { 

     var remember = $.cookie('remember'); 
     if (remember == 'true') 
     { 
      var email = $.cookie('email'); 
      var password = $.cookie('password'); 
      // autofill the fields 
      $('#email').val(email); 
      $('#password').val(password); 
     } 


    $("#login").submit(function() { 
     if ($('#remember').is(':checked')) { 
      var email = $('#email').val(); 
      var password = $('#password').val(); 

      // set cookies to expire in 14 days 
      $.cookie('email', email, { expires: 14 }); 
      $.cookie('password', password, { expires: 14 }); 
      $.cookie('remember', true, { expires: 14 });     
     } 
     else 
     { 
      // reset cookies 
      $.cookie('email', null); 
      $.cookie('password', null); 
      $.cookie('remember', null); 
     } 
    }); 
}); 
3
document.cookie = "login=" + username_from_DOM_here + "-----" + password_from_DOM_here + "; secure"; 

不要在cookie聲明中使用的路徑,並確保該網頁是HTTPS,那麼你應該就好了。安全cookie只能在HTTPS頁面上傳輸,並忽略路徑限定符,以確保cookie不可用於網站的其他部分。也不要使用expires限定符,因爲cookie在瀏覽器會話結束的時候會過期。

還有一些安全問題,即Cookie仍在文本文件中包含非哈希憑據。即使該cookie不應該在HTTPS之外傳輸,它仍然可以被瀏覽器之外的惡意軟件訪問。

0
**At first you need jquery.cookie.js file** 

<script type="text/javascript"> 

$(document).ready(function() { 

    var remember = $.cookie('remember'); 
    if (remember == 'true') 
    { 
     var username = $.cookie('username'); 
     var password = $.cookie('password'); 
     // autofill the fields 
     $('#username').val(username); 
     $('#password').val(password); 
    $('#login-check').attr('checked',true);//#login-check checkbox id.. 
    } 


$("#UserLoginForm").submit(function() { 
    if ($('#login-check').is(':checked')) { 
     var username = $('#username').val(); 
     var password = $('#password').val(); 

     // set cookies to expire in 14 days 
     $.cookie('username', username, { expires: 14 }); 
     $.cookie('password', password, { expires: 14 }); 
     $.cookie('remember', true, { expires: 14 });     
    } 
    else 
    { 
     // reset cookies 
     $.cookie('username', null); 
     $.cookie('password', null); 
     $.cookie('remember', null); 
    } 
    }); 
}); 

</script>