[Spring] 백엔드(스프링) 로그인 처리하기

@Controller
public class LoginController {

    @PostMapping("/login")
    public String login(@RequestParam String username,
                        @RequestParam String password,
                        Model model) {
        // 예시: 아이디 admin, 비밀번호 1234만 로그인 성공 처리
        if ("admin".equals(username) && "1234".equals(password)) {
            model.addAttribute("message", "로그인 성공!");
            return "home"; // home.html로 이동
        } else {
            model.addAttribute("message", "아이디나 비밀번호가 틀렸습니다.");
            return "login"; // 다시 로그인 페이지로
        }
    }
}

 

 

@Controller

: 웹 요청을 처리하는 Spring의 컨트롤러

: 웹에서 사용자가 form을 제출하면 그걸 받아 처리함

:@RestController과는 다르게 html화면을 반환한다.

 

public class LoginController {

:LoginController는 클래스 이름으로 컨트롤러의 기능을 여기에 묶어 관리한다

:즉 여기선 로그인 관련 기능만 담당하는 클래스로 쓰인다.

 

@PostMapping("/login")

:사용자가 로그인 form을 제출할 때 POST방식으로 전송함

:그 요청을 "/login" 주소로 보냄

:그 주소로 그 form을 받아 처리함

+@GetMapping은 주소에 그냥 들어올 때 사용한다.

 

Public String login(...)

:login이라는 이름의 함수(메서드)로 String을 반환한다는 뜻은 어떤 html 페이지로 갈지 이름을 문자열로 돌려주겠다는 의미 eg) return."home" -> home.html 페이지로 이동함

 

@RequestParam String username

:HTML <input name="username">에서 사용자가 입력한 값을 여기로 가져온다.

:username이라는 이름으로 넘어온 값을 자바 변수 username에 저장한다.

 

@RequestParam String password

:위와 같은 방식으로 사용자가 입력한 비밀번호를 가져옴

 

@Model model

:HTML로 값을 보낼 때 사용하는 데이터 전달 가방

:model.addAttribute("key",값)하면, HTML에서 ${key}로 꺼내 쓸 수 있다.

 

if ("admin.equals(username) && "1234".equals(password)) {

:만약 아이디를 "admin", 비밀번호를 "1234"로 입력하면 로그인 성공

:실제 서비스에서는 이러한 고정값이 아닌 DB와 비교한다.

 

model.addAttribute("message", "로그인 성공!")

:"message"라는 이름으로 "로그인 성공!" 이라는 문장을 담아 html에 넘겨준다

:html에서는 ${message}로 꺼내어 보여줄 수 있다.

 

return "home"

:로그인 성공 시, home.html 화면을 사용자에게 보여준다.

 

model.addAttribute("message", "아이디나 비밀번호가 틀렸습니다.");

:로그인 실패시 마찬가지로 "message"라는 이름으로 "아이디나 비밀번호가 틀렸습니다."라는 문장을 html에 넘겨준다.

 

return "login";

:로그인 페이지로 이동시킨다.