상세 컨텐츠

본문 제목

JavaScript를 활용한 간단한 로그인 기능 구현하기

공부/WEB

by micalcomanie 2025. 3. 3. 13:41

본문

728x90
반응형
SMALL

 

 

사용자의 이름을 입력받아 환영 메시지를 표시하는 간단한 로그인 기능을 만들어봅니다.

로그인 후 입력 폼이 사라지고, 이름이 포함된 메시지가 나타납니다.


1. HTML 구조

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style.css">
    <title>Momentum</title>
</head>
<body>
    <form id="login-form">
        <input required maxlength="15" type="text" placeholder="What is your name?">
        <input type="submit" value="Log In" />
    </form>
    <h1 id="greeting" class="hidden"></h1>
    <script src="app.js"></script>
</body>
</html>

2. CSS 스타일

.hidden {
    display: none;
}

3. JavaScript 기능 구현

const loginForm = document.querySelector("#login-form");
const loginInput = document.querySelector("#login-form input");
const greeting = document.querySelector("#greeting");
const HIDDEN_CLASSNAME = "hidden";

function onLoginSubmit(event) {
    event.preventDefault();
    loginForm.classList.add(HIDDEN_CLASSNAME);
    const username = loginInput.value;
    greeting.innerHTML = `Hello ${username}, keep going!`;
    greeting.classList.remove(HIDDEN_CLASSNAME);
}

loginForm.addEventListener("submit", onLoginSubmit);

4. 추가 기능: localStorage 활용

const USERNAME_KEY = "username";

function onLoginSubmit(event) {
    event.preventDefault();
    loginForm.classList.add(HIDDEN_CLASSNAME);
    const username = loginInput.value;
    localStorage.setItem(USERNAME_KEY, username);
    paintGreetings(username);
}

function paintGreetings(username) {
    greeting.innerText = `Hello ${username}, keep going!`;
    greeting.classList.remove(HIDDEN_CLASSNAME);
}

const savedUsername = localStorage.getItem(USERNAME_KEY);
if (savedUsername) {
    paintGreetings(savedUsername);
} else {
    loginForm.classList.remove(HIDDEN_CLASSNAME);
    loginForm.addEventListener("submit", onLoginSubmit);
}

 

 

이제 간단한 로그인 기능이 완성되었습니다! 🎉

  • localStorage를 활용하면 새로고침 후에도 사용자 이름을 유지할 수 있습니다.
  • 로그인 폼을 숨기고, 환영 메시지를 표시하는 방식으로 간단하게 동작합니다.

 

728x90
반응형
LIST

관련글 더보기