a-happy-dev-day / yanawa-server

Rival Matching Services Server
0 stars 1 forks source link

[Documentation] 회원 기능 문서화 #19

Closed this-is-spear closed 1 year ago

this-is-spear commented 2 years ago

요구사항

기능 요구사항

프로그래밍 요구사항

this-is-spear commented 1 year ago

인증 정책

  1. 로그인 페이지로 이동한다.(URI : /kakao/login)
  2. 로그인을 진행한다.(URI : /kakao/login/callback)
    1. 사용자가 소셜 로그인을 진행해 토큰을 발급받는다.
    2. 발급받은 토큰으로 사용자의 정보를 조회하고 사용자 정보가 없는 경우 사용자 정보를 저장한다.
    3. 카카오 ID를 이용해 사용자 정보를 확인한다.
    4. 이메일을 이용해 사용자 정보를 확인한다.
    5. 카카오에 접근할 수 있는 Bearer 타입의 Access 토큰과 Refresh 토큰과 유효시간을 데이터베이스에 저장한다. (이 때, 데이터베이스는 RDBMS가 맡지만 추후, 레디스가 적용될 수 있다는 점을 고려하자)
    6. 토큰을 생성한다. 토큰안에는 데이터베이스에 저장된 사용자의 ID와 유효시간 정보가 포함되어 있다.
      1. 유효시간은 카카오 API 토큰의 유효시간을 따른다.
    7. 헤더에 토큰을 추가해 응답한다.

인가 정책

this-is-spear commented 1 year ago

인증

Admin 사용자 토큰 발급

  1. 로그인(/login)해 서버의 AccessCode를 발급한다.
  2. AccessToken과 RefreshToken을 발급 받기 위해 AccessCode를 입력해 인증 요청(/login/token)한다.
  3. AccessCode에 대한 유효성 검사를 진행한다.
  4. 식별자와 권한을 담은 Access Token과 식별자와 유효시간을 담은 Refresh Token을 발급한다.

Kakao Login API 사용자 토큰 발급

  1. 카카오 페이지(kakao/login)에서 로그인 한 후 서버의 AccessCode를 발급한다.
  2. AccessToken과 RefreshToken을 발급 받기 위해 AccessCode를 입력해 인증 요청(/login/token)한다.
  3. AccessCode에 대한 유효성 검사를 진행한다.
  4. 식별자와 권한을 담은 Access Token과 식별자와 유효시간을 담은 Refresh Token을 발급한다.

토큰 갱신

  1. Refresh Token을 입력해 토큰 갱신 요청(/refresh)을 한다.
  2. Refresh Token 유효성 검사를 진행한다.
  3. Access Token을 발급한다.

인가

토큰을 가진 사용자 접근

  1. Access Token을 헤더에 입력한 요청한다.
  2. Access Token 유효성 검사를 진행한다.
  3. SecurityContext에 사용자 정보와 권한을 저장한다.