회원가입을 했으니
로그인을 만들어보자!
이전에 만들었던 거에서 조금 바꿔보자!
https://cordingmonster.tistory.com/95?category=1035704
JwtLoginFilter
이전과 다른 건 없고
딱하나 추가 했다
chain.doFilter(request, response);
로그인 실패 시
실행되는 함수를 만들자
자체적으로 제공해주는 함수이고
chain이 없으니
다른 방법으로 보내주자
1번
request.getRequestDispatcher("/login").forward(request, response);
2번
RequestDispatcher dp=request.getRequestDispatcher("/login");
dp.forward(request, response);
1번은 이번에 처음 알게 된 거고
2번을 난 자주 사용했다
restcontroller
http://localhost:8080/login으로
로그인 요청을 하면
JwtLoginFilter을 지나
성공하든/실패하든
여기로 오게 된다
userService
로그인에 성공했다면
시큐리티 필터에 주입이 됐을 것이다
시큐리티 필터를 확인한다
String email=SecurityContextHolder.getContext().getAuthentication().getName();
없다면=null이라면 예외가
일어난다 그러면 캐치로 가게 된다
catch (Exception e) {
return failLogin();
}
근데.. 굳이 왜 함수를 만들었지..?
이따가 doLogin안으로 그냥 넣어주자!
아 원래
AuthenticationException이용해서
뭔가 return을 해주려고 했는데
이미 지정 자료형이 void여서
다른 방식으로 구현했다!
js
성공했다면
리다이렉트를 해주고
if(result.bool){
jwt=xhr.getResponseHeader('Authorization');
localStorage.setItem('Authorization', jwt);
window.location.href = 'http://localhost:3030/kim_s_Shop/index.jsp';
return;
}
실패했다면
메시지를 띄어주자
alert(result.message);
이거 진짜 까먹지말자
xhr.withCredentials = true;
테스트
틀린 비밀번호 입력
존재하지 않는 이메일 입력
맞는 이메일+맞는 비번 입력
리다이렉트 성공!
리프레시 토큰+액세스 토큰 받기 성공!
아이디/비밀번호
찾기를 구현해보자!
'Spring boot kim's Shop > 로그인' 카테고리의 다른 글
Springboot Jwt+로그아웃! with 쿠키 지워주기 (0) | 2021.08.04 |
---|---|
Springboot Jwt+로그인!(2) with 로그인 완료 (0) | 2021.08.03 |
Springboot Jwt+비밀번호찾기!(2) with email (0) | 2021.08.01 |
Springboot Jwt+비밀번호 찾기!(1) with JavaMailSender (0) | 2021.07.29 |
Springboot Jwt+아이디 찾기! (0) | 2021.07.28 |