티스토리 뷰
23-02-22) 스프링 부트 11강 1편 - 로그인기능 <세션 , redirect(redirectAttributes) >
JadeStone 2023. 2. 22. 19:17#로그인 기능 -> 2가지
1. 인터셉터 (쉬움)
2. security (어려움)
* 쿠키는 클라이언트에서 저장
* 세션은 서버에서 저장
* login 페이지
- form 형식으로 입력값을 넘긴다.
<form action="login" method="post">
<input type="text" name="id">
<input type="password" name="pw">
<input type="submit" value="로그인">
</form>
* 컨트롤러
- 아래 보면 요청이 /login 으로 똑같은 곳이 2군데 있다.
하지만 getMapping 과 PostMapping 은 똑같은 요청이지만 서로 요청방식에 따라서 다르게
적용된다. ( form 방식으로 요청했으면 PostMapping, get 방식 요청이면 GetMapping 으로 )
-아래서 로그인 기능 부분(PostMapping)
1. 전달받은 id 와 pw 값을 통해서
서비스 영역에서
//select * from 유저 where id =? and pw = ?
해당 id, pw 에 해당하는 유저가 있는지 확인 후 있으면 로그인 성공.
로그인 이후 인증값을 남기기 위해 세션을 작성한다.
세션을 작성하기 위해 로그인한 user의 정보를 담는다.
userVO.setId("aaa");
userVO.setName("홍길동"); 여기 부분.
2. 로그인 한 유저의 정보를 세션으로 담아서 로그인을 한 인증값으로 남긴다.
(최근엔 토큰 방식으로 인증값을 많이 남긴다고 함.)
세션 생성이후
로그인 성공 페이지인 mypage 로 redirect 형식으로 이동시켜줌.
@Controller
@RequestMapping("/user")
public class UserController {
@GetMapping("/login")
public String login() {
return "user/login";
}
//로그인 기능
@PostMapping("/login")
public String loginForm(UsersVO vo, HttpSession session) {
//select * from 유저 where id =? and pw = ?
//서비스영역 호출(로그인 성공)
UsersVO userVO = new UsersVO();
userVO.setId("aaa");
userVO.setName("홍길동");
//로그인 성공 - 세션을 이용해서 인증값
if(userVO != null) {
session.setAttribute("user_id", userVO.getId()); //토큰
return "redirect:/user/mypage"; //로그인 성공
}
return "user/login"; //로그인 실패
}
@GetMapping("/mypage")
public String mypage() {
return "user/mypage";
}
@GetMapping("/info")
public String info() {
return "user/info";
}
}
* 로그인 성공이후 (리다이렉트 방식으로 화면을 넘어옴)
- mypage.html 로 넘어옴.
<body>
<h3>세션값이 있다면 session.이름으로 사용가능합니다</h3>
[[${session.user_id}]]
</body>
- 화면
생선된 세션값이 잘 저장되었음을 확인했다.
'Spring 부트' 카테고리의 다른 글
23-02-23) 스프링 부트 12강 - 자바측 API 통신(카카오 로그인) (0) | 2023.02.24 |
---|---|
23-02-22) 스프링 부트 10강 2편 - 이미지 파일 불러오기, 다운로드 (0) | 2023.02.23 |
23-02-21) 스프링부트 10강 - 파일 업로드 (0) | 2023.02.22 |
23-02-17) 스프링 부트 8강 - 제이쿼리 (0) | 2023.02.17 |
23-02-16) 스프링부트 7강 - REST API (0) | 2023.02.16 |
- Total
- Today
- Yesterday
- 자바수업
- api 활용
- 데이터베이스 수업
- 알람 시계 문제
- FOR문
- output 스트림
- 다중 반복문
- 중앙정보처리학원
- 국비학원
- 배열 삭제
- 국비학원 수업
- 국비지원 학원 수업 내용
- 내포 클래스
- 강남 중앙정보처리학원
- 배열과 탐색
- 자바#자바수강기록
- 조건문
- 가비지 콜렉팅
- 강남역 12번 춣구
- 배열의 정렬
- 자바 api
- 박문석 선생님
- 오코노라멘
- JS ES6 문법
- 자바
- 자바스크립트 ES6 문법
- nasted class
- 박인욱 강사님
- input 스트림
- interface #자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |