다른 사이트(서비스)의 정보를 로그인 없이 비밀번호를 안 주고 가져올 수 있게 해주는 인증 방식이다.
OAuth 2.0의 흐름(= Authorization Code Flow): 가장 보편적인 OAuth 로그인 방식이다.
보안이 가장 뛰어나고, 서버가 중간에서 모든걸 처리하기 때문에 많이 사용한다.
redirect_uri: 사용자가 인증 후, 소셜 서비스가 우리쪽으로 돌아오는 주소
ex: http://localhost:3000/auth/callback
-> 소셜 로그인 성공 시, 여기에 코드를 전달해준다.
client_id와 client_secret
client_id: 우리 앱의 공개 ID(구글, 카카오 등에 등록하면 발급해준다.)client_secret: 비밀번호 같은 민감한 값이다.(절대 클라이언트에 노출되면 안된다.)scope: 어떤 정보까지 동의 받을지 정하는 파라미터이다.
ex) profile: 이름, 닉네임, email: 이메일 주소
code: 로그인 성공 후, 소셜에서 우리에게 주는 일회용 인증 코드이다.
-> 이걸 이용해서 access_token을 얻을 수 있다. 중요한건 이 code는 짧은 시간만 유효하다.
access_token과 refresh_token
access_token: 실제 사용자 정보를 요청할 수 있는 키이다.refresh_token: access_token을 새로 발급받기 위한 키이다.access_token 재발급 시 사용한다.