Blame view

README.md 1.89 KB
14043a54   sangkiham   Init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  # SpringSecurityJWT-Local-OAuth2-EmailAuth-Redis
  
  개발환경은 다음과 같습니다.
  
  - Spring Boot : 2.5.6
  - Spring Security : 5.6.0
  - Gradle : 7.2
  - Mysql : 8.0
  - Querydsl : 4.4.0
  
  Spring Security를 통해 로컬 로그인과 소셜 로그인을 구현하였습니다. (구글, 네이버, 카카오)
  
  로그인은 JWT 토큰 방식으로 진행됩니다.
  
985182bd   ggun12   프로젝트 명 동기화
15
16
17
18
19
20
  	토큰 유효기간 ( /auth_jwt_api/src/main/java/daeucna/Security/config/security/jwt/JwtTokenProvider.java )
  	
  		TOKEN_VALID_TIME = 1000L * 60 * 30; // 30분
  		REFRESH_TOKEN_VALID_TIME = 1000L * 60 * 60 * 24 * 7; // 7일
  
  
14043a54   sangkiham   Init
21
22
23
24
25
  추가적으로 로컬 회원가입 진행시 이메일 인증을 추가하여 이메일 인증시 로그인이 되도록 구현하였습니다.
  
  [[Spring\] JWT, OAuth2.0, Email - Redis로 구현
  
  # Swagger
985182bd   ggun12   프로젝트 명 동기화
26
27
  - 연계
  	/auth_jwt_api/src/main/java/daeucna/Security/config/SwaggerConfig.java
14043a54   sangkiham   Init
28
29
30
31
32
  - http://localhost:8080/swagger-ui/index.html
  - 인증 헤더 -  X-AUTH-TOKEN
  
  # Project and External Depencies가 보이지 않을 경우
  - build.gradle 아래 apply plugin: "eclipse" 추가
985182bd   ggun12   프로젝트 명 동기화
33
  - /auth_jwt_api/settings.gradle : rootProject.name = 'auth_jwt_api'  확인
14043a54   sangkiham   Init
34
  - gradlew cleanEclipse eclipse
9b21f059   sangkiham   수정
35
36
37
38
39
40
  - right-click the build.gradle file -> Gradle -> Refresh Dependencies.
  
  # 실행
  - radis 설치및 실행
  - radis의 host와 port를 맞춘다
  - app 실행
985182bd   ggun12   프로젝트 명 동기화
41
42
  	이클립스 : boot
  	커맨드 : /소스root/gradlew.bat bootRun
9b21f059   sangkiham   수정
43
44
  
  - 사용자 등록(/sign/register)
985182bd   ggun12   프로젝트 명 동기화
45
46
47
48
49
50
51
52
53
54
55
56
57
58
  	SCM 테이블 members  에 등록되고
  	email_auth => 1 (True) 로 변경하면 사용자 활성화 => Admin 기능으로 구현 필요
  	
  
  - 사용자 로그인(/sign/login) -> 사용자의 email_auth가 1(True)로 되어 있는 사용자만 로그인 가능
  
  
  # 테스트 도구
  - arc 설치
  	https://github.com/advanced-rest-client/arc-electron/releases
  
  - Swagger 페이지에서 테스트 파라미터 참조
  	인증 헤더 = X-AUTH-TOKEN
  	파라미터 = POST 전송 시 body 에 json 형태로