스터디를 통해 스프링부트와 AWS로 혼자 구현하는 웹 서비스(저자 이동욱) 서적을 공부하는 중입니다.
공부/실습한 내용을 정리한 포스팅입니다.
책에 모르는 부분이 있으면 구글링하거나 챗gpt에 물어봐서 보충하였습니다.
(아직 초보라 모르는 부분이 많아 이것저것 다 적었습니다.)
참고한 사이트 출처는 포스팅 맨 하단에 적었습니다.
index.mustache
코드 추가 작성로그인 버튼과 로그인 성공 시 사용자 이름 보여주는 코드
{{>layout/header}}
<h1>스프링 부트로 시작하는 웹 서비스 Ver.2</h1>
<div class="col-md-12">
<!-- 로그인 기능 영역-->
<div class="row">
<div class="col-md-6">
<a href="/posts/save" role="button" class="btn btn-primary">글 등록</a>
{{#userName}}
Logged in as : <span id="user">{{userName}}</span>
<a href="/logout" class="btn btn-info active" role="button">Logout</a>
{{/userName}}
{{^userName}}
<a href="/oauth2/authorization/google" class="btn btn-success active" role="button">Google Login</a>
{{/userName}}
</div>
</div>
<br>
<!-- 목록 출력 영역-->
.
.
.
{{#userName}}
a href="/logout
{{^userName}}
a href="/oauth2/authorization/google"
IndexController
코드 추가index.mustache
에서 userName을 사용할 수 있게 IndexController
에서 userName을 model에 저장하는 코드 추가
import javax.servlet.http.HttpSession;
@RequiredArgsConstructor
@Controller
public class IndexController {
private final PostsService postsService;
private final HttpSession httpSession;
@GetMapping("/")
public String index(Model model) {
model.addAttribute("posts", postsService.findAllDesc());
SessionUser user = (SessionUser) httpSession.getAttribute("user");
if(user!=null){
model.addAttribute("userName", user.getName());
}
return "index";
}
.
.
.
(SessionUser) httpSession.getAttribute("user")
CustomOAuthUserService
에서 로그인 성공 시, 세션에 SessionUser 저장하도록 구성하여 그 값을 가져올 수 있었음.
로그인이 잘 된 것을 확인 가능.