SNS 로그인 !== OAuth이다. 정확히 말하면 OAuth 프로토콜의 기능 중 하나로 SNS 로그인이 있는 것이다. OAuth OAuth란, 외부서비스의 인증 및 권한부여를 관리하는 범용적인 프로토콜이다. 권한: OAuth는 인증뿐만 아니라 권한도 관리한다. 사용자의 권한에 따라 접근할 수 있는 데이터가 다르도록 설정이 가능하다. 프로토콜: 일종의 규격이다. Google, Facebook, Naver, Kakao 등은 OAuth라는 규격에 맞춰 인증 및 권한을 대행관리 해준다. 외부서비스: 우리가 만들고 있는 서비스를 말한다. 외부 서비스를 위한 서비스인 OAuth는 우리 서비스의 인증 및 권한부여 관리를 대행해준다. OAuth가, 처음에 포스팅했던 세션/쿠키 및 토큰 기반 인증 방식을 완전히 대체하..
앞서 작성한 글 에서, JWT(JSON Web Token)의 단점 중, 한 번 발급된 경우 유효기간이 지날 때까지 계속 사용할 수 있기 때문에 만약 토큰이 악의적으로 활용될 경우 Access Token의 유효기간이 다 될 때까지 정보가 계속 털릴 수 있다는 점을 얘기했다. 그리고 이러한 JWT의 문제점을, Access Token의 유효기간을 줄이고, Refresh Token이라는 새로운 토큰을 발급함으로써 해결할 수 있다고 하였다. 그래서, 각자는 정확히 무엇인지, 그리고 위의 문제점을 어떻게 해결하는 것인지를 알아보고자 한다. Refresh Token 상술했듯 Access Token(JWT)를 통한 인증 방식의 문제는, 제3자에게 탈취당할 경우 유효기간이 끝날 때까지 계속 정보가 털릴 수 있다는 점이다..
종합설계에서 퍼블리싱을 마치고 내가 구현해야 될 부분을 보다가, OAuth를 활용한 소셜 로그인 구현이 있었다. 무작정 코드만 갖다 쓰자니 내가 얻을 것도 없고, 이해도 안될 것 같으므로 우선 OAuth의 기초가 되는 인증 방식부터 공부해보기로 했다. 세션/쿠키(Session/Cookie) 방식 세션: 서버에서 갖고 있는 정보 쿠키: 사용자에게 발급된 세션을 얻기 위한 열쇠(SESSION ID) - 쿠키만으로 인증을 사용한다는 말은 서버의 자원은 사용하지 않는다는 것, 즉 클라이언트가 인증 정보를 책임지게 됨 -> HTTP 요청 탈취가 가능. 보안 취약. - 그래서 로그인과는 상관없는, 장바구니 및 자동 로그인 등에 사용된다. 세션/쿠키 방식 순서 1. 사용자 로그인 2. 서버에서 계정 정보를 읽어 사용..