저장된 아이디와 비밀번호로 로그인 성공시 로그인 버튼은 마이페이지로 변경되며 잘못된 정보 입력시 로그인 페이지는 넘어가지 않는다.
✂️로그인 페이지
✂️로그인 전
✂️로그인 후
✔️ 1. 로그인 성공시 마이페이지로 변경
2. 로그인 성공시 세션/쿠키 생성
3. 자동 로그인 기능
<form action="/root/member/user_check" method="post">
<div class="user-box">
<input type="text" name="id" id="id" required="">
<label for="id">아이디</label>
</div>
<div class="user-box">
<input type="password" name="pwd" id="pwd" required="" class="user-margin">
<label for="pwd">비밀번호</label>
</div>
<div class="save-find">
<input type="checkbox" name="autoLogin" class="check-box">로그인 유지
</div>
<button type="submit" id="btn">로그인</button>
<ul class="member-join">
<li><a href="register_form">회원가입</a></li>
</ul>
</form>
아이디/비밀번호를 입력하고 버튼을 클릭하면 submit
으로 넘기고 해당 폼은 post방식으로 컨트롤러를 연결한다.
//로그인시 확인
@PostMapping("user_check")
public String userCheck(@RequestParam String id,@RequestParam String pwd,
RedirectAttributes rs) { //id, pwd 받아줄것
int result = ms.userCheck(id,pwd); //서비스로 id,pwd넘기기
System.out.println("result : " +result); //result확인
//result=0이면 성공(rs로 id넘기기)
if(result == 0) {
rs.addAttribute("id",id);
return "redirect:successCheckLogin"; //바로 로그인성공페이지
}else { //로그인 체크 실패시
return "redirect:login"; //다시 로그인페이지로
}
}
로그인 페이지에서 컨트롤러 user_check로 값을 넘기고 이 값을 받는 방법인
1.dto 2.param 3.request
3가지 중에서 @RequestParam
으로 아이디, 비밀번호를 받아주었다.
service로 넘길 아이디/비밀번호를 int형 변수 result에 담아 result가 0이면 성공이라 RedirectAttributes
로 아이디를 넘기고 로그인 성공 페이지롤 보여준다.
하지만 로그인 실패시 다시 로그인 페이지로 이동한다.
public int userCheck(String id, String pwd);
@Autowired memberMapper memberMapper;
public int userCheck(String id, String pwd) {
memberDTO dto = memberMapper.userCheck(id);
if(dto !=null) {//dto가 있다면
if(pwEncoder.matches(pwd, dto.getPwd())) { //사용자값, dto에 있는 값 비교하기
return 0;//성공
}
}
return 1;//실패하면 1반환
}
@Autowired
로 mapper를 연결해주고 mapper로 보낼 아이디를 dto에 넣고 dto가 있다면 사용자가 입력한 값과 dto에 있는 값을 비교해 성공으로 0을 반환하고 없다면 실패로 1을 반환한다.
public memberDTO userCheck(String id); //dto전달하기
<select id="userCheck" resultMap="member">
select * from box_member where buser_id=#{id}
</select>
해당하는 아이디와 같은 결과값을 가져오고 resultMap
으로 리턴값은 member형식에 맞추었다.