Spring boot kim's cafe/회원가입

Spring boot 회원가입 만들기!(3) 해시하기 with BCryptPasswordEncoder

디비드킴 2021. 6. 14. 09:30

이제 비밀번호 및 이름을 받아서 넣을 건데

dto와 바닐라 js를 이용해서 유효성 검사를 할 것이다!
원래 프런트엔드에서도 보안 작업을 걸어야 하지만

사실상 검사를 눌러서 수정해 버리면 의미가 없어지기 때문에

백엔드에서 잘못된 값이 들어왔을 때 튕겨내주는 장치를 하려고 한다!


(뇌피셜 일뿐 프런트엔드 전문가 분들이 만들다면 당연히 좀 더 다를 거라고 생각한다

보안은 그냥 정말 특수한 공부 영역 같다)


일단 역시 바닐라 js로 비밀번호 역시 css를 만져준다!

lib.js

 

결과 4자리 이상일때
결과 4보다 작을때

이제 회원가입을 진행할 텐데
form->controller->userservice->비밀번호 해시-> dao->service->controller 이렇게 될 거 같다

이제 시큐리티로 가서 인코더를 만들자!

security.java

BCryptPasswordEncoder
를 리턴해 주는 함수를 만들어서
bean에 등록해주고

userservice에서 db로 sql를 쏘기 직전에
비밀번호를 암호화해준다!

userservice.java

그리고 이메일 인증을 위한 칸을 null로 하지 않기 위해

잡다한 서비스 제공을 해주는 클래스를 하나 만들어 주고

utilservice.java
insertUser

랜덤번호를 null두지 않기 위해 임의로 넣어주고
email인증을 false로 넣어준다!

이제 컨트롤러로 가서

controller.java

true라면 로그인페이지로(아직미구현)
false라면 그냥 다시 회원가입페이지로
보낸다

가입을 해보면

mysql

단순한 1111이 엄청난 문자열로 변환돼서
저장되었다
그리고
같은 이메일로 회원가입을 시도한다면?

이렇게 사인을 주고
그래도 밀어 넣는다면

유니크를 걸어놓아서 에러가 나고

다시 회원가입 페이지로 오게 된다
사실 실제로는 적을게 많아서 ㅋㅋㅋ
이렇게 초기화시키는 거보다는 ajax로 받아서
경고창으로 어디 어디가 비어있거나 이렇게 알려주는 게
더 좋을 거 같다!

아 그리고

lib.js

이렇게 innnerhtml로 상황에 맞게
글자를 넣어줬다
지워줬다 하게 했다

다음은 로그인하자!