Cookie實現記住密碼、自動登錄


前端代碼

<form id="form" action="xxx" method="post">
    <div>
        <input type="text" name="account" id="account" placeholder="賬號">
        <input type="text" name="pwd" id="pwd" placeholder="密碼">
    </div>
    <div>
        <ul>
            <li>
                <label>
                    <input type="checkbox" name="checkbox" value="1" checked="checked" />
                    <span></span>
                </label>
                記住密碼
            </li>
            <li>
                <label>
                    <input type="checkbox" name="checkbox" value="2" />
                    <span></span>
                </label>
                自動登錄
            </li>
        </ul>
    </div>
</form>
<a href="javascript:login()">登 錄</a>

<script type="text/javascript">
    function login() {
        $("#form").submit();
    }

    //加載頁面后加載次函數
    $().ready(function() {// 記住密碼功能
        var str = decodeURIComponent(document.cookie.split(';')); // 獲取Cookie
        alert(str);
        // 以下是Cookie數據處理邏輯
        // 不同的項目存儲的Cookie不同,處理數據的邏輯不同
        // 要根據具體的Cookie值來截取賬號、密碼
        if (str.indexOf("loginInfo")>-1) {
            var arr = str.split(",");
            var loginInfo = arr[1];
            var arr = loginInfo.split("+");
            var name = arr[0];
            name = name.substring(name.lastIndexOf("=", name.length - 1) + 1);
            var phone = arr[1];

            //自動填充用戶名和密碼
            $("#name").val(name);
            $("#phone").val(phone);
        }
    });
</script>

后端代碼

 1 // 獲取多選框(checkbox)的值
 2 String[] checkbox = request.getParameterValues("checkbox");
 3 
 4 // 判斷是否勾選功能
 5 if (checkbox != null) {// 已勾選功能
 6     for (String str : checkbox) {
 7         // 判斷是否勾選記住密碼功能
 8         if (str.equals("1")) {
 9             // 組合登錄信息
10             String loginInfo = name + "+" + phone;
11             // 將登陸信息編碼
12             loginInfo = URLEncoder.encode(loginInfo, "UTF-8");
13             // 創建Cookie
14             Cookie userCookie = new Cookie("loginInfo", loginInfo);
15             // 設置Cookie存活期限
16             userCookie.setMaxAge(30*24*60*60);//設置存活期一個月
17             // 設置所有路徑下共享Cookie
18             userCookie.setPath("/");
19             // 添加Cookie到服務器響應中
20             response.addCookie(userCookie);
21         }
22         // 判斷是否勾選自動登錄功能
23         if (str.equals("2")) {
24             session.setAttribute("agent", agent);
25         }
26     }
27 } else {// 未勾選功能,或取消勾選功能,刪除Cookie信息
28     String loginInfo = name + "+" + phone;
29     loginInfo = URLEncoder.encode(loginInfo, "UTF-8");
30     Cookie userCookie = new Cookie("loginInfo", loginInfo);
31     userCookie.setMaxAge(0);//刪除cookie,只需要將失效時間設置為0即可,其他步驟一樣
32     userCookie.setPath("/");
33     response.addCookie(userCookie);
34 }
35 // 在測試中可能會出現一些問題,清除掉Cookie重新添加,在測試。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM