본문 바로가기

jsp

쿠키 기반 로그인: 쿠키를 활용한 간단한 로그인 시스템 구현 예제.

반응형

쿠키를 활용한 로그인 시스템은 사용자 식별 정보를 쿠키에 저장하여 사용자가 사이트에 다시 방문했을 때 자동으로 인식할 수 있게 하는 방법입니다. 이러한 방식은 사용자 편의성을 높이지만, 보안 측면에서 주의를 요합니다. 아래는 쿠키 기반 로그인 시스템을 구현하는 두 가지 예제입니다.

예제 1: 쿠키를 사용한 간단한 로그인

이 예제에서는 사용자 이름과 비밀번호를 입력받아 쿠키에 저장하고, 이후 방문 때 자동으로 인식하는 로그인 시스템을 구현합니다.

login.jsp

<!DOCTYPE html>
<html>
<head>
    <title>Simple Cookie-based Login</title>
</head>
<body>
<form action="loginHandler.jsp" method="post">
    Username: <input type="text" name="username"><br>
    Password: <input type="password" name="password"><br>
    <input type="submit" value="Login">
</form>
</body>
</html>

 

loginHandler.jsp

<%@ page import="javax.servlet.http.Cookie" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    // Get user input from request
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    // Dummy check for username and password (Replace with real validation)
    if("admin".equals(username) && "admin123".equals(password)) {
        // Create a cookie for username
        Cookie userCookie = new Cookie("username", username);
        userCookie.setMaxAge(60*60*24); // Expires in 1 day
        response.addCookie(userCookie);
        
        out.println("Login successful!");
    } else {
        out.println("Invalid username or password!");
    }
%>

 

예제 2: 로그인 상태 확인 및 로그아웃

이 예제에서는 사용자가 로그인했는지 확인하고, 로그아웃 기능을 구현합니다.

checkLogin.jsp

<%@ page import="javax.servlet.http.Cookie" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    // Check for existing user cookie
    Cookie[] cookies = request.getCookies();
    String username = null;
    if(cookies !=null){
        for(Cookie cookie : cookies){
            if("username".equals(cookie.getName())){
                username = cookie.getValue();
                break;
            }
        }
    }

    if(username != null){
        out.println("Welcome back, " + username + "!");
    } else {
        out.println("You are not logged in.");
    }
%>

logout.jsp

<%@ page import="javax.servlet.http.Cookie" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    // Invalidate the user cookie
    Cookie[] cookies = request.getCookies();
    if(cookies !=null){
        for(Cookie cookie : cookies){
            if("username".equals(cookie.getName())){
                cookie.setMaxAge(0); // Delete the cookie
                response.addCookie(cookie);
                break;
            }
        }
    }

    out.println("You have been logged out.");
%>

관련 전문용어 설명

  • 쿠키(Cookie): 웹 사이트가 사용자의 브라우저에 저장하는 작은 정보 조각입니다. 사용자 식별, 세션 관리, 사용자 선호도 저장 등에 사용됩니다.
  • setMaxAge(): 쿠키의 유효 기간을 설정하는 메소드입니다. 0으로 설정하면 쿠키가 삭제됩니다.
  • 로그인 상태 유지: 사용자가 웹 사이트를 재방문할 때 자동으로 인증되어야 하는 기능입니다. 쿠키나 세션을 통해 구현될 수 있습니다.

 

반응형