Skip to content

[기능 요청] Spring Security 적용에 따라 변경된 API 적용 #13

@KOOJAESUNG

Description

@KOOJAESUNG

요청한 기능이 어떤 문제 및 어떤 향상을 가져다 주는지 기술해 주세요.
�백엔드 Spring Security 가 적용되었습니다. 이제 인증과 인가를 적용할 수 있습니다.

당신이 고려한 대안을 설명해주세요
안드로이드측에서도 변경된 API를 적용해야합니다.
!!!! 주소와 parameter가 변경된 API가 매우 많습니다!!!! 꼭 확인 부탁드립니다!!!

추가 내용

로그인 url : POST https://domain.kro.kr:8080/login //domain은 원래 주소로 변경해야합니다. https://와 :8080 붙여야합니다.

로그인 DTO :

{
“username”:”value”, //로그인 아이디
“password”:”value” //비밀번호
}

로그인 아이디 전략 : 현재 MemberEntity와 AdminEntity가 별도로 존재하기 때문에 로그인 아이디를 통해 현재 로그인하는 사용자가 Admin인지
Member인지 확인할 수 있도록 구현했습니다. 따라서 Admin의 경우 로그인 아이디 맨 앞에 “admin_”을 붙여주어야 합니다.
로그인 아이디와 이메일은 별개이기 때문에 admin_string@gmail.com 과 같이 이메일 주소 형식으로 해도 무방합니다.

ex)
Role이 MEMBER인 경우 로그인 아이디: stringstring
Role이 ADMIN인 경우 로그인 아이디: admin_stringstring

현재 dummy data는 다음과 같습니다.

MEMBER :

{
“username”:”member1”, //로그인 아이디
“password”:”member1” //비밀번호
}

부터

{
“username”:”member5”, //로그인 아이디
“password”:”member5” //비밀번호
}

ADMIN :

{
“username”:”admin_admin5”, //로그인 아이디
“password”:”admin_admin5” //비밀번호
}

부터

{
“username”:”admin_admin5”, //로그인 아이디
“password”:”admin_admin5” //비밀번호
}

JWT Token 발급: 로그인 성공시 response header에 key: Authorization / value: XXX.XXX.XXX(JWT Token) 이 포함됩니다.
로그인 이후 서버에 request 요청시 http header에 발급받은 jwt token을 포함해야 합니다. 이 때, value의 prefix로 “Bearer “가 붙어야합니다. Bearer 뒤에 공백은 꼭 포함되어야 합니다.
현재 만료시간은 10일로 잡아두었으며, 추후 논의 후 변경될 수 있습니다.

ex)
발급된 token:
key: Authorization
value: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbl9hZG1pbjIiLCJpZCI6MiwiZXhwIjoxNjg5MjIxMTU0LCJ1c2VybmFtZSI6ImFkbWluX2FkbWluMiJ9.T5ckfslj0WbNiUJHdxRmIV0-Z4ID7CnXG_F1Yet70kvbcbP6Gt-l9923SDo422vcC7Dw-JmNbopoXWMsKUrxLw

Request header에 포함해야 하는 token:
key: Authorization
value: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbl9hZG1pbjIiLCJpZCI6MiwiZXhwIjoxNjg5MjIxMTU0LCJ1c2VybmFtZSI6ImFkbWluX2FkbWluMiJ9.T5ckfslj0WbNiUJHdxRmIV0-Z4ID7CnXG_F1Yet70kvbcbP6Gt-l9923SDo422vcC7Dw-JmNbopoXWMsKUrxLw

Test시 사용법:

login은 Postman을 사용해 접근해야 합니다.

스크린샷 2023-07-03 오후 1 26 42 위와 같이 JSON형식으로 request body에 로그인 DTO를 담아 요청하면, 스크린샷 2023-07-03 오후 1 27 34 위와 같이 token이 발급되는 것을 확인할 수 있습니다.

이 token을 swagger에서 사용하기 위해서는 token값을 복사해
스크린샷 2023-07-03 오후 1 22 37
각 API 옆에 있는 자물쇠 혹은 초록색 Authorize 버튼을 클릭해 token을 입력하면 됩니다.

API는 사용하기 편리하도록 1.모든 API(1.ALL), 2.ADMIN만 접근 가능한 API(2.ADMIN), 3. ADMIN, MEMBER(3.MEMBER)가 접근할 수 있는 API 로 그룹화하였으며, swagger 페이지 오른쪽 상단의 Select a definition을 통해 변경 가능합니다. 인가가 필요하지 않은 요청은 1.ALL 에 있음에 유의하시기 바랍니다.

Metadata

Metadata

Labels

문서화문서에 내용 추가 및 향상

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions