Open zangsu opened 1 month ago
OAuth 는 3자의 통신 과정으로 진행됩니다.
통신 참여 대상:
Access Token 은 코드잽이 구글에게 유저 정보를 조회 (또는 다른 작업) 하기 위해 존재한다고 하네요~ (저는 처음에 만두가 코드잽에 접근하기 위해 사용하는 줄 알았음 ㅎㅎ 그게 아니래용~)
위의 설명에서는 프론트엔드와 백엔드가 뭉뚱그려 설명되어 있는데요. 우리는 프론트의 역할과 백엔드의 역할이 엄연히 구분되어야 합니다. 이에 대해서는 조금 더 이야기를 해 보아야 겠지만, 선배 기수인 후디의 블로그 글을 참고해 볼 수 있을 것 같아요~
로그인을 할 때는 Access Token 을 사용하더라도, 로그인을 유지할 때는 지금과 동일하게 CredentialManager
, CredentialProvider
를 통해 쿠키 값을 지정할 수 있을 것 같습니다.
이렇게 하면 Access Token 을 서버에 저장할 필요 없이 기존 방식대로 로그인 유지가 가능합니다.
OAuth 에서는 기본적으로 제공해 주는 사용자의 고유 ID 만을 사용할 계획입니다.
새로 생길 테이블 :
(fk) member_id | identify_id |
---|---|
1 | 01021 |
-> 01021 이라는 고유 ID 는 1번 멤버로 식별 가능한 값이다.
테이블이 하나가 추가되면 다른 OAuth 서비스를 추가로 확장하더라도 기존 테이블의 변경이 없기에 롤백이 쉽습니다. 또한, OAuth 서비스가 늘어나면서 특정 테이블이 비대해 질 불편함도 예방할 수 있습니다.
OAuth 관련해서 알아보다가 방끗에서 받은 피드백을 알게 되어 공유드려요! OAuth 를 하나만 사용하면 해당 OAuth 서비스에 강한 의존성이 생깁니다. (ex. 카카오 서비스가 문제가 생기면 카카오 로그인을 사용하는 사람이 서비스 자체를 이용하지 못함)
그래서 OAuth 도 두 개 이상 붙이는 것이 권장되며, 일반 로그인도 함께 제공하는 이유가 이렇다고 해요. (아마 티스토리는 그 자체가 카카오에서 제공하는 서비스라서 카카오 로그인만 사용하게 하는 것 같기도??)
오늘 결정되었던 "Google 하나만 붙이고 일반 로그인은 점차 줄여나가자" 라는 방향에 대한 문제인 것 같아서 일단 공유 드립니다.
일반 로그인을 그대로 유지한 채로 나중에 여유가 생기면 Email 인증을 추가로 넣는 방법은 어떠실까요? 일반 회원가입은 코드를 삭제하지 않고 잠시 숨겨두었다가 다시 살리면 좋을 것 같은데요. Email 인증도 제가 욕심이 나서 제안 하는 것이라 "작업 강도" 가 걱정이라면 제가 구현해도 좋으니 편하게 정책적으로만 의견 주시면 감사하겠습니다~
첫 로그인
로그인 유지
토큰 재발급
토큰이 만료된 경우 서버는 사용자에게 "토큰이 만료됨" 을 알 수 있는 응답을 보냅니다.
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer error="invalid_token" error_description="The access token expired"
Content-type: application/json
{ "error": "invalid_token", "error_description": "The access token expired" }
Cookie의 동작은 브라우저에 의존합니다. 이에 Cookie 대신 HTTP 헤더를 사용하여 AccessToken을 전달합니다.
📌 어떤 기능인가요?
회의를 통해 #779 작업을 OAuth 도입으로 전환
📜 작업 상세 내용
⏳ 예상 소요 시간 (예상 해결 날짜)
5일 소요 (10/20 15:00)