Thymeleaf 문법이 저는 마음에 안들기때문에 ㅋㅋㅋ pug 를 쓰지만
Thymeleaf쓰면 sec:authorize로 로그인여부나 이름을 가져올수있어도
pug는 이게안되기때문에 추가 코드가 조금 필요합니다. 복붙해도 되기때문에 그냥 갖다 써도됨.
전역에 변수를 주입해주는 GlobalControllerAdvice 클래스를 하나 만들어서
------------------------------------------
@ControllerAdvice
public class GlobalControllerAdvice {
// 모든 요청에 대해 isloggedin 속성을 추가하여 템플릿에서 사용 가능하게 함
@ModelAttribute("isloggedin")
public boolean addIsLoggedInAttribute(Principal principal) {
// Principal이 null이 아니면 로그인 상태로 간주
return principal != null;
}
@ModelAttribute("username")
public String addUsernameAttribute(Principal principal) {
// Principal이 null이 아니면 사용자 이름을 가져오고, null이면 "Anonymous" 반환
return principal != null ? principal.getName() : "Anonymous";
}
}
-------------------------------
이렇게 해주면 어떤 템플릿 파일에서도 isloggedin 과 username을 확인할수있습니다.
예를들어 nav 바에 로그인상태에 따라서 버튼모양과 기능이 달라지게 하려면 아래처럼 활용하면 됩니다.
pug 파일에서
---------------------
if isloggedin
a(href="/logout") Logout
else
a(href="/login") Login
-----------------------
이러면 로그인 여부에 따라서 링크 기능이 달라지게 할수있죠.
Spring이라서 그런지 매우 편하게 되네요.
-
이 게시글은
김지한에 의해 9 월, 2 주 전에 수정됐습니다.
-
이 게시글은
김지한에 의해 9 월, 2 주 전에 수정됐습니다.
-
이 게시글은
김지한에 의해 9 월, 2 주 전에 수정됐습니다.
-
이 게시글은
김지한에 의해 9 월, 2 주 전에 수정됐습니다.
-
이 게시글은
김지한에 의해 9 월, 2 주 전에 수정됐습니다.