전체 글 269

Springboot Jwt+회원가입 하기!(2) with RestControllerAdvice/ExceptionHandler

이제 유효성 검사 실패 시 메시지를 프런트에게 던져줘 보자 좀찾아보니 @valid도 익셉션도 핸들러로 해주면 되는거 같다 이전에도 예외는 한번 했었다 https://cordingmonster.tistory.com/64?category=1031826 Springboot 롤백! with @Transactional(rollbackFor = {Exception.class}) with save 고민이 있었다 게시글을 쓰는데 게시글은 넣고 사진을 등록하다가 에러가 터지면 전부 롤백을 해줘야 하는데 방법을 몰랐다 얼추 @Transactional을 가지고 한다고 들었는데 그래서 찾아봤다 https://d cordingmonster.tistory.com errorRestController 레스트 컨트롤러 전역 예외를 잡..

Springboot jwt+회원가입 하기!(2) with @Valid

이제 회원가입 시 간단한 유효성 검사를 해보자! @Valid를 사용하여 검사를 해보자 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 여기를 보면 기능들이 잘 나와있다 https://bamdule.tistory.com/35 [Spring Boot] @Valid 어노테이션으로 Parameter 검증하기 java.validation의 @Valid 어노테이션 사용법 정리 글입니다. Spring Boot 라이브러리에서 기본적으로 탑재된 기능이며 따로 dependency해 줄 필요가 없습니다. Spring Boot Version은 2.2.2.RELEASE 입니다. 1. j.. bamdule.tistory.com dto ..

Spring boot jwt+회원가입하기!(1) with insert DB

드디어 대망의 회원가입 구현 시간! js restcontroller service 휴대폰 인증 내역을 가져온다 confrimDto confrimDto=confrimService.findConfrim(singupDto.getPhoneNum()); 휴대폰인증 시도가 있었는지 검사한다 if(confrimDto!=null) 인증한 휴대폰 번호와 일치하는지 검사한다 if(confrimDto.getPhoneNum().equals(singupDto.getPhoneNum())) 휴대폰 인증을 완료했는지 검사한다 if(confrimDto.getPhoneCheck()==yes) 중복되는 이메일이 아닌지 확인한다 if(confrimEmail(singupDto.getEmail())) db insert userDao.save(..

Springboot Jwt+휴대폰인증!(2) 인증번호 확인

버그+효율성 때문에 리팩토링 하였습니다 https://cordingmonster.tistory.com/131 Springboot 인증 시스템 리팩토링!(1) with interface 이전 글 https://cordingmonster.tistory.com/108?category=1038496 Springboot Jwt+휴대폰인증!(2) 인증번호 확인 이제 인증번호가 맞는지 안 맞는지 판별해보자 프런트 js json형태로 번호/입력 전송 let dat.. cordingmonster.tistory.com 이제 인증번호가 맞는지 안 맞는지 판별해보자 프런트 js json형태로 번호/입력 전송 let data=JSON.stringify({ "phoneNum":""+document.getElementById('p..

Spring boot Jwt+휴대폰인증!(1) with Coolsms

버그+효율성 때문에 리팩토링 하였습니다 https://cordingmonster.tistory.com/132?category=1041862 세션에 번호/인증번호/여부 저장 ->인증 확인 후-> 세션 여부 TRUE로 변환 하려 했으나 포트 번호가 달라서 그런지 인증번호 요청 후-> 번호 제출했을 때 ->세션이 null이었다 2.db이용 그래서 인증 db를 만들어서 인증번호 요청-> db저장-> 인증번호 비교-> db true로 변환 이렇게 구현했다 출발해 보자! confrimDto 이메일 인증 구현도 같이 사용할 예정이다 하루 횟수 제한을 두기 위해 인증 요청 회수 기록 @Column(name="requesttime",nullable = false,length = 2) @ColumnDefault("1") ..

Springboot 집주소검색! with 카카오 주소검색 api

결제랑 다르게 딱히 검증을 할 필요가 없어서 (아닌가..?) 그냥 카카오 api를 통제로 들고 왔다 백엔드에서 딱히 해줄 건 없어 보인다 http://postcode.map.daum.net/guide Daum 우편번호 서비스 우편번호 검색과 도로명 주소 입력 기능을 너무 간단하게 적용할 수 있는 방법. Daum 우편번호 서비스를 이용해보세요. 어느 사이트에서나 무료로 제약없이 사용 가능하답니다. postcode.map.daum.net 사용자가 선택한 값 이용하기 를 선택하고 코드 보기를 하면 주르륵 나온다 정말 잘되어있다 가져오기만 하면 된다 (사실은 코드 통째로 가져오는걸 정말 싫어한다 그래서 카카오 로그인/아임 포트/네 아로 등 직접 하나하나 api를 만들었었다 너무 재밌었는데 여기는 백엔드에서 딱히..

Springboot Jwt+아이디 중복 검사! with XMLHttpRequest

새로운 토이 프로젝트! 회원가입부터 해보자! 크게 다를 건 없다 이전 jwt내용은 여기 있다 https://cordingmonster.tistory.com/category/Jwt 'Jwt' 카테고리의 글 목록 cordingmonster.tistory.com 아이디 중복 검사 로직 service 회원이 존재하는지 찾는 함수 userDto findEmail(String email) dao를 이용해 회원을 찾는다 return userDao.findByEmail(email); 값을 리턴한다 없다면 null이 리턴됨 판별하는 함수 public boolean confrimEmail(String email) 값을 판별한다 if(findEmail(email)==null) 없다면 true 있다면 false 리턴한다 re..

Springboot 네이버로그인+Jwt(1) with redirect,URLSearchParams

드디어.... 드디어 알아냈다 네이버 로그인구현은 이전에 했었다 https://cordingmonster.tistory.com/84?category=1034502 Springboot 네이버로그인!(!) code받기 state만들기 소스를 정리하기 전에 좀 아쉬움이 남았다 아임 포트로 api를 성공하고 나니까 너무 짜릿해서 한 번 더 해보고 싶었는데 무얼 할까 하다가 자주 사용할 거 같은 네이버 로그인을 선택했다! 네이 cordingmonster.tistory.com 저 코드에서 인증 부분 밑에 코드 발급 기능을 추가하면 된다 service 리프레시 토큰이 db에 있나 검사하고 wtDto jwtDto=jwtService.getRefreshToken(userDto.getId()); (없다면 null이 들어간..

Springboot Jwt토큰 프론트와 통신하기!(4) with cookie,XMLHttpRequest

액세스 토큰은 =로컬 스토리지에 저장하고 리프레시 토큰은 =httponly 쿠키로 전송해 주자! jwtLoginFilter refresh라는 이름으로 내용을 담는 쿠키 생성 Cookie cookie=new Cookie("refreshToken", refreshToken); 자바스크립트에서 접근 못하게 httponly 켜주고 cookie.setHttpOnly(true); 쿠키 저장 response.addCookie(cookie); 서버에서 쿠키 받는 법 https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials Access-Control-Allow-Credentials - HTTP | MDN 응답헤더 Acce..

Springboot Jwt 프론트와 통신하기!(3) with localStorage,자바스크립트

jwt 토큰을 저장하는 방법은 크게 두 가지이다 https://velog.io/@0307kwon/JWT%EB%8A%94-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%B4%EC%95%BC%ED%95%A0%EA%B9%8C-localStorage-vs-cookie JWT는 어디에 저장해야할까? - localStorage vs cookie 이번에 지하철 미션을 만들면서 JWT를 클래스 property에 저장했었는데 리뷰어 분께 해당 부분을 피드백 받으면서 어디에 JWT를 저장하는 것이 좋을까 에 대해 고민해보게 되었다. 0. 기본 지식 JWT Js velog.io 이 글을 참고해서 장단점이 있다 쿠키와 localStorage인데 localStorage부터 하겠다..