HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
♥️
2기 최종 프로젝트 팀별 공간
/
💸
10원모아10조❗️
/
📄
08월 11일
📄

08월 11일

주제
작성자
All
주차
3주차
[ 목차 ]
1. 회의 안건 2. 회의 내용 3. 결정사항 4. 다음 회의 안건
 

1. 회의 안건


  • https : 비올레 제안 - https 인증 기간이 걸릴 수도 있으니 알아봐달라는 제안
  • nginx : 소니 제안 - 어떻게 할 것인지

2. 회의 내용


  • 얀주가 https를 하려면 nginx 쓰는게 레퍼런스도 많아서 참고하기 편할 듯하다
    • 아마 nginx를 쓰게될것 같긴한데요 ?
    • 아마 없이 사용할 수 있으면 https 우선으로!
  • 마이페이지 우선순위는 로그아웃, 회원 탈퇴
    • 수정은 미루자 - 거의 안한다 마인드
  • 프론트는 금요일까지 피쳐 작성하고 주말에 테스트
 
참고

1. 로그인

  • Spring Security를 사용하지 않고 직접 인증/인가 기능을 구현했습니다.
    • 인증 (Authentication)
      • WAS에 들어오는 요청을 검증하기 위한 AuthorizationInterceptor 구현했습니다.
        • Http 헤더에 들어있는 엑세스 토큰(JWT) 존재 여부 확인합니다.
        • 올바른 엑세스 토큰인지 검증합니다.
    • 인가 (Authorization)
      • 컨트롤러에 접근하기 전에 요청한 유저의 권한을 검증하기 위한 CurrentUserArgumentResolver 구현했습니다.
        • Http 헤더에 들어있는 엑세스 토큰으로 유저 객체를 생성합니다.
        • 유저 객체가 알맞은 권한을 갖고 있는지 검증합니다.
  • OAuth 로그인 구현
    • 클라이언트에서 OAuth 공급자와 인가 코드(AuthorizationCode)가 요청으로 오면 공급자에 알맞는 소셜 로그인 서버(Authorization Server)에게 엑세스 토큰을 요청합니다.
    • 전달 받은 엑세스 토큰으로 소셜 로그인 서버(Resource Server)에게 유저 정보를 요청합니다.
    • 전달 받은 유저 정보에서 필요한 정보를 Redis에 저장한 뒤 엑세스 토큰과 리프레쉬 토큰을 생성합니다.
    • 생성한 엑세스 토큰과 리프레쉬 토큰을 클라이언트에게 반환합니다.
  • 리프레쉬 토큰을 활용한 자동 로그인 구현
    • 사용자가 로그인을 하면 엑세스 토큰과 리프레쉬 토큰을 발급합니다.
    • 엑세스 토큰이 만료되면 리프레쉬 토큰을 사용해 엑세스 토큰을 다시 발급합니다.
    • 리프레쉬 토큰의 만료기간이 24시간 미만으로 남았을 때, 기기 고유번호가 일치할 경우 리프레쉬 토큰을 다시 발급합니다.
  • 엑세스 토큰, 리프레쉬 토큰 취약점 개선
    • 엑세스 토큰이 탈취될 수 있는 문제
      • 엑세스 토큰의 만료 시간을 3분으로 설정하여 개선했습니다.
    • 리프레쉬 토큰 탈취될 수 있는 문제
      • 로그인 시 기기 고유번호를 받아 Redis에 저장합니다.
      • 리프레쉬 토큰으로 새로운 엑세스 토큰을 발급할 때 기기 고유번호도 받아 Redis에 저장된 값과 다르면 다시 로그인하도록 하여 개선했습니다.
 

3. 결정사항


 

4. 다음 회의 안건