본 서비스의 개발을 시작하였을 때, '사용자의 입장에서 새로운 아이디와 비밀번호를 만들고 입력하는 것이 불편하지 않을까?' 라는 생각을 하였습니다. 그리고 최근 대부분의 서비스를 이용할 때, 새로운 아이디나 비밀번호를 만들지 않고 기존 소셜 플랫폼의 이메일이나 계정을 통해서 회원가입, 혹은 로그인을 하게 됩니다. 그에 따라서 본 서비스도 소셜 로그인을 통해 회원가입을 구현하고자 하였습니다.
OAuth (Open Authorization)
OAuth란, 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로 사용되는, 접근 위임을 위한 개방형 표준이다. (위키백과)
즉, OAuth를 통해서 사용자 정보를 불러와 회원가입을 구현할 수 있게 되었고, OAuth를 통해 카카오톡에 접근하여 사용자의 카카오톡 친구 목록을 불러와 친구 간 중고거래 서비스를 구현할 수 있게 되었습니다.
kakao developers
본 프로젝트에서는 kakao 계정을 통해 로그인을 할 수 있습니다. kakao의 경우 공식문서가 매우 잘되어 있기 OAuth를 기반으로 한 다양한 기능들을 비교적 쉽게 구현할 수 있습니다. 본 프로젝트에서는 로그인과 친구목록 불러오기 기능을 구현하였습니다.
https://developers.kakao.com/docs/latest/ko/index
Redirect URI & 로직 처리
카카오로그인을 구현할 때, 카카오에서 제시하는 주소로 요청을 보내면 로그인 페이지를 응답을 받습니다. 그렇게 카카오 계정을 통해 로그인을 성공하면 미리 kakao developer 사이트에서 설정한 Redirect URI로 Body와 함께 응답을 받습니다. 응답 받은 Body에는 (동의를 얻은 제한된) 사용자 정보 access token, refreshtoken 등을 얻게 되고 이를 통해서 본 서비스에서 사용자와 관련된 로직들을 처리할 수 있게 됩니다.
'개발 > withfriend 🫱🏼🫲🏽🥕' 카테고리의 다른 글
[개발 이슈] 코드에서 민감한 정보는 어떻게 다루지? / application.properties .yml (0) | 2023.10.31 |
---|---|
[개발 이슈] 서비스가 이벤트를 발생시키는 주체가 어떤 사용자인지 어떻게 구분하지? / access token, session, refresh token (0) | 2023.10.30 |
[프로젝트 회고] 의존성 주입의 여러 방법들 (0) | 2023.10.27 |
[프로젝트 회고] 프로젝트 아키텍처 (0) | 2023.10.24 |
[프로젝트 회고] 파일 구조 (0) | 2023.10.23 |