-
Notifications
You must be signed in to change notification settings - Fork 3
[회원] 구글 소셜 로그인
YEJI edited this page Aug 4, 2023
·
2 revisions
회원가입과 로그인 기능은 구글 OAuth와 JWT를 이용하였다.
OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다.
OAuth를 사용하면 우리가 직접 ID와 PW를 관리하지 않아도 되고, 사용자도 낯선 서비스에 민감한 정보를 넘기지 않아도 되어서 좋다.
JWT는 토큰 기반 인증으로, 로그인한 사용자의 상태 정보를 애초에 서버 단에 저장하지 않기에 서버 단 저장소의 오버헤드를 신경 쓸 필요 없으며, 복잡한 구성과 환경에서 로그인한 사용자의 상태 정보를 기억해야 하는 부담도 없으니 서버 확장에 훨씬 유리하다.
그러나 토큰이 탈취되면 유효기간동안 사용자 정보가 공격자 마음대로 이용되므로, 인가에 필요한 access token의 유효시간을 짧게 만들고 이를 재발급하기 위한 refresh token을 사용하였다.
refresh token의 저장소로 Redis를 선택하였다. Redis는 Remote Dictionary Server로, key-value 쌍의 Hash Map과 같은 구조를 가진 비관계형 DBMS이다. 데이터를 HDD나 SDD가 아니라 RAM에 저장하므로 데이터를 영구적으로 저장할 수 없는 대신, 굉장히 빠른 액세스 속도를 보장받을 수 있다.