首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

如何實現網頁自動登錄功能(Java + JSP + JavaScript)

     編輯:程式設計疑難解答

需求背景

在 Web 開發中,「記住我」或「30 天內自動登錄」是常見需求。用戶勾選複選框後,下次訪問登錄頁時自動填充用戶名和密碼,甚至直接完成登錄,極大提升用戶體驗。

核心思路

  1. 登錄時判斷用戶是否勾選「自動登錄」複選框。
  2. 若勾選,將用戶名和密碼(或加密後的 Token)寫入 Cookie,設置過期時間為 30 天。
  3. 用戶再次打開登錄頁時,讀取 Cookie 中的信息自動填充表單或發起自動登錄請求。

關鍵代碼示例

// 登錄成功後
if (autoLoginChecked) {
    Cookie userCookie = new Cookie("username", URLEncoder.encode(username, "UTF-8"));
    Cookie passCookie = new Cookie("password", URLEncoder.encode(password, "UTF-8"));
    userCookie.setMaxAge(30 * 24 * 60 * 60); // 30天
    passCookie.setMaxAge(30 * 24 * 60 * 60);
    response.addCookie(userCookie);
    response.addCookie(passCookie);
}

// 登錄頁初始化時
Cookie[] cookies = request.getCookies();
if (cookies != null) {
    for (Cookie c : cookies) {
        if ("username".equals(c.getName())) {
            usernameField.setValue(URLDecoder.decode(c.getValue(), "UTF-8"));
        } else if ("password".equals(c.getName())) {
            passwordField.setValue(URLDecoder.decode(c.getValue(), "UTF-8"));
            autoLoginCheckbox.setChecked(true);
        }
    }
}

安全提示

生產環境切勿明文存儲密碼。建議採用以下方案:

  • 存儲加密後的 Token,而非原始密碼。
  • Cookie 設置 HttpOnly 和 Secure 標誌。
  • 結合「記住用戶名」與「自動登錄」分離,降低風險。

參考資源

完整實現可參考:JavaEye 相關博客

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved