Jpa를 이용하여 게시판 만들어 보기 2
로그인/로그아웃
로그인 실패
로그인 성공 시
로그인을 성공하면 이렇게 로그아웃 버튼이 생긴다
로그인 컨트롤러 코드
@PostMapping("/loginCheck")
public String loginOk(UserVo userVo, RedirectAttributes redirectAttributes, HttpSession session) {
int loginResult = userService.loginOk(userVo,session);
if (loginResult == 1) {
//세션 방식으로 로그인 정보 저장
return "redirect:/user"; // 로그인 성공 시 /home으로 리다이렉트
} else if (loginResult == 2) {
System.out.println("비번 틀림");
redirectAttributes.addFlashAttribute("error", "Invalid password.");
return "redirect:/user/login"; // 비밀번호가 틀린 경우
} else {
redirectAttributes.addFlashAttribute("error", "User not found.");
return "redirect:/user/login"; // 유저 정보가 없는 경우
}
}
로그인 서비스 코드
public int loginOk(UserVo userVo, HttpSession session){
String id= userVo.getId();
Users users=userRepository.findById(id);
if (users == null) {
return 3; // 유저 정보가 없는 경우
}
if (userVo.getPw().equals(users.getPw())) {
session.setAttribute("userInfo",users);
session.setMaxInactiveInterval(60*30);
System.out.println("로그인 성공");
return 1; // 로그인 성공
} else {
return 2; // 비밀번호가 틀린 경우
}
로그인 시도 시 ID로 그 아이디와 같은 , USER을 찾는다 만약 USER이 존재하고 비밀 번호가 같다면
userInfo라는 세션을 만들어 그 안에 유저 정보를 담고 리턴값을 1을 준다
만약 비밀 번호가 틀릴 경우 이턴값으 2 , 유저 정보가 없을 경우 리턴값은 3을 준다.
로그인 레퍼지토리 코드
//로그인
//계정 정보 찾기
Users findById(String id);
로그아웃 컨트롤러
@PostMapping("/logout")
public String logout(HttpServletRequest request){
//세션 삭제
HttpSession session = request.getSession(false);
if(session !=null){
session.invalidate();
}
return "redirect:/user";
}
로그아웃 컨트롤러 같은경우네는 request.getSession(false); 현재 세션값을 받아와 세션값이 있을 경우 삭제한다.
session.invalidate(); 으로 세션을 초기화할 수 있다.
반응형
'자바 공부 > 스프링공부' 카테고리의 다른 글
Jpa를 이용하여 게시판 만들어 보기 4 (0) | 2024.08.31 |
---|---|
Jpa를 이용하여 게시판 만들어 보기 3 (0) | 2024.08.19 |
jpa를 이용하여 게시판 만들어 보기 1 (0) | 2024.08.07 |
Jpa 사용법 (0) | 2024.08.04 |
My Batis 사용법 (0) | 2024.07.04 |