OAuth는 접근 위임을 위한 인증방식 표준이다.
내가 개발한 서비스에 구글/카카오 로그인을 한다면 그 고객이 구글과 카카오 회원임을 어떻게 하면 알 수 있을까?
1) 사용자의 구글 아이디/패스워드를 알아내서 로그인 한다? No~
2) 고객의 구글 로그인 정보를 안전한 방법으로 우리 서비스에 전달하여 로그인 한다? Yes
- 여기서 말하는 안전한 방법이란?
고객이 구글에 로그인을 한다 -> Access Token이 발급된다 -> 리다이렉트를 통해 구글 로그인에서 우리 서비스로 이동하는데 토큰을 리다이렉트되는 주소에 담아서 보낸다.
위의 방법으로는 사실 해킹의 위험이 있다. 리다이렉트 되는 주소를 중간에서 바꿔버릴 수가 있기 때문이다.
이런 위험 때문에 OAuth를 사용하는 것이고, OAuth 등록 절차가 사전에 필수적으로 이뤄져야 한다.
등록 절차는 리다이렉트 되는 uri와 같은 것을 외부 서비스에 등록하는 것이다.
외부 서비스(구글/카카오/네이버)에 OAuth 등록 절차를 밟는다 -> 고객이 구글에 로그인을 한다 -> AccessToken이 발급된다 -> 미리 등록한 리다이렉트 주소로 Access Token을 전달한다 -> 서버는 AccessToken을 Header에 담아 외부 서비스에 회원 정보 요청을 한다 -> 정보를 건네준다.
https://velog.io/@undefcat/OAuth-2.0-%EA%B0%84%EB%8B%A8%EC%A0%95%EB%A6%AC
'TIL (Today I Learned)' 카테고리의 다른 글
Amazon Linux 2023 EC2 port forwarding 80 to !!! (0) | 2024.01.26 |
---|---|
오늘의 리팩토링 1 - try-with-resources || Files 클래스와 Stream API (0) | 2023.03.23 |
Java Thread의 wait(), notify() and monitor (0) | 2023.03.22 |
Access-Control-Allow-Origin (0) | 2023.03.14 |
내가 사용하는 기술 (간략) 정리 01. PostgreSQL, Elasticsearch(OpenSearch) (0) | 2023.02.15 |