728x90
오늘은 로그인까지만 시도했다.
1차 일지 - [ 설정 ], [ 회원가입 ]
23/12/29) 수정!
1. 로그인
1-1) body
더보기
login.jsp
<div>
<form id="loginfrm" method="post" action="/member/login">
<div class="frm_item">아이디
<input type="text" name="mId" class="input" placeholder="아이디를 입력하세요" maxlength="20" autocapitalize="off">
</div>
<div class="frm_item">비밀번호
<input type="password" name="mPw" class="input" placeholder="비밀번호를 입력하세요" maxlength="20" autocapitalize="off">
</div>
<br>
<button type="button" onclick="location.href='/'">메인화면</button>
<button type="button" onclick="location.href='/member/joinfrm'">회원가입하러가기</button>
<button type="submit" class="btn btn-3 btn-3e" id="loginSubBtn" style="text-align: center;">login!</button>
</form>
</div>
- div 아이디나 클래스명 지어주는 것을 잊어먹었다..
- 버튼을 통해 메인화면으로, 혹은 회원가입하러 갈 수 있도록 해놨다.
1-2) js
더보기
login.jsp
<script type="text/javascript">
let m = "${msgFl}"
if(m!=""){
alert(m);
}
</script>
- 로그인에 실패하면 문구를 띄울 수 있도록 js를 추가했다.
1-3) controller
더보기
MemberController
@GetMapping("/member/loginfrm")
public String login() {
log.info("==> GetMapping - loginfrm 요청 <==");
return "login";
}
@PostMapping("/member/login")
public String logrin(MemberDto mDto, RedirectAttributes ra, HttpSession session, Model model) {
boolean result = mSer.login(mDto);
if(result) {
ra.addFlashAttribute("msgFl","로그인 성공!");
session.setAttribute("loginId",mDto.getMId());
return "redirect:/";
}
ra.addFlashAttribute("msgFl","로그인 실패");
return "redirect:/member/loginfrm";
}
- MemberService를 통해 login 메소드를 실행하고 성공여부를 boolean으로 받아와, if문을 돌린다.
1-4) service
더보기
MemberService
public boolean login(MemberDto mDto) {
log.info("===> mSer login 요청 <===");
BCryptPasswordEncoder pwEn = new BCryptPasswordEncoder();
String mPw = mDao.login(mDto.getMId());
if(pwEn.matches(mDto.getMPw(), mPw)) {
return true;
}
return false;
}
- 인코딩했던 비밀번호를 디코딩할 수 없지만 비교할 수는 있다고 해서 다시 BCryptPasswordEncoder을 통해 입력받은 비밀번호와 아이디를 통해 검색해온 인코딩된 비밀번호가 같은지 비교하여 true, 아니면 false를 리턴해준다.
1-5) dao
더보기
String login(String mId);
- MemberDao
<select id="login" parameterType="String" resultType="String">
select mPw from member where mId=#{mId}
</select>
- MemberDao의 xml 파일 (mappers)
2. 결과
더보기
- 로그인 실패 시
동기통신을 하며 얼럿창을 띄운다. (근데 이거 비동기로 확인하고 보내는 것도 나쁘지 않을듯..하다..아무것도 없는 화면에 저 얼럿창만 덜렁 나와있으니 뭔가..별로다ㅠㅠ)
틀리거나 헷갈렸던 점 메모
session에 아이디를 저장하는 방법을 실패한 것 같다..나중에 다시 해보기!- controller에서 Model을 안 받아와서 실패했었다. 넣어주니 잘 저장해옴..
728x90
'프로그래밍 > +a' 카테고리의 다른 글
slPro 3차 일지 (0) | 2024.01.01 |
---|---|
미니 팀 프로젝트 사전 준비 (파이썬) (2) | 2024.01.01 |
slPro 1차 일지 (1) | 2023.12.27 |
Java_주말 복습: 문제 다시 풀어보기 (0) | 2023.10.01 |
Java_주말 복습: 문제 다시 풀어보기 (0) | 2023.10.01 |