패스워드 암호화
회원가입
- 입력 받은 비밀번호를 검증 (길이, 특수문자 포함 여부 확인)
- Salt 생성
- 비밀번호 + Salt를 해싱
- 해싱된 비밀번호를 DB에 저장
- Salt는 별도의 salt 테이블에 저장
로그인
- 입력 받은 email로 Salt 조회
- 입력 받은 비밀번호 + 조회된 Salt로 해싱
- DB에 저장된 비밀번호 해시값과 비교
로그인 성공 시 토큰 발급
- email을 기반으로 해시를 생성하여 토큰 발급
- 토큰을 login 테이블에 저장 (email, token, 생성시간)
RESTful (Representational State Transfer)
- 자원을 이름 (자원의 표현) 으로 구분하여 해당 자원의 상태 (정보)를 주고 받는 모든 것을 의미 (/users, /auth 등)
- HTTP 메서드 사용 (GET, POST, PUT, DELETE)
URI naming sample
swagger
- RESTful API를 자동으로 문서화하는 도구
- API 요청 & 응답을 UI에서 테스트 가능
// pom.xml
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.1.0</version>
</dependency>
// Swagger UI 접속 URL:
http://localhost:8080/swagger-ui/index.html
미니 프로젝트
[번개장터 클론코딩][Spring Boot] 로그인, 회원가입 기능 구현
시도성공회원가입- email 및 패스워드 양식 확인- salt 부여 및 DB salt 테이블에 저장- salt + 패스워드 해싱해서 DB member 테이블에 저장로그인- 입력 받은 email로 salt 조회- 입력 받은 패스워드 + 조회된
leeemingyu.tistory.com
'[LG 유플러스] 유레카 > Today I Learned' 카테고리의 다른 글
[TIL][03.17] Controller, RestController, 카카오 로그인, 미니 프로젝트 (0) | 2025.03.18 |
---|---|
[TIL][03.14] JWT, Session, Amazon RDS, 미니 프로젝트 (0) | 2025.03.15 |
[TIL][03.11] 세션 & 토큰 로그인, 토큰 수명 관리 (0) | 2025.03.12 |
[TIL][03.10] XSS, 외래키, tabnabbing, 토큰, 로그인 (0) | 2025.03.11 |
[TIL][03.07] 메모리 캐싱, SQL 인젝션, MyBatis, ConnetionPool (0) | 2025.03.10 |