개발 낙서장

[TIL] 내일배움캠프 51일차 - 로그인 페이지 본문

Java/Sparta

[TIL] 내일배움캠프 51일차 - 로그인 페이지

권승준 2024. 3. 8. 21:28

 

 

오늘의 학습 키워드📚

로그인 페이지

기존엔 API만 만들고 포스트맨으로 테스트했다면 이제 실제로 View를 만들어볼 차례다.
아무리 백엔드 개발자가 되기 위해 공부를 한다지만 다방면으로 기본적인 지식은 있어야 하니까....

먼저 html, js, css를 구성한다. 그리고 기존 컨트롤러들은 RestController 였으니 View를 표시하기 위한 Controller를 만들어 준다.

package com.sparta.mytodo.view.controller;

import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String home() {
        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();

        if (authentication == null || "anonymousUser".equals(authentication.getPrincipal())) {
            // 사용자가 로그인하지 않았다면 로그인 페이지로 리다이렉션
            return "redirect:/login";
        }
        else {
            return "/todo";
        }
    }

    @GetMapping("/login")
    public String login() {
        return "/login";
    }

    @GetMapping("/signup")
    public String signup() {
        return "/signup";
    }

    @GetMapping("/todos")
    public String todos() {
        return "/todo";
    }
}

이런 식으로 하는게 맞는지 모르겠지만...

어쨌든 잘 넘어온다!

회원 가입도 따로 만들어주었다. 자바 스크립트를 통해 api 요청을 보내고 회원가입에 성공하면 다시 로그인 페이지를 반환하도록 했다.

로그인에 성공하면 이렇게 JWT 쿠키도 생긴다.
근데 문제는 헤더에 넣어줬는데 인증, 인가 처리가 제대로 되고 있는 것 같지 않아서 좀 더 해봐야 알 것 같다.


오늘의 회고💬

이것저것 하다보니 시간이 좀 후딱 지나간 것 같다.

 

내일의 계획📜

개인 과제를 좀 더 해볼 생각이다.

Comments