구글, 트위터, 페이스북 계정으로 다른 사이트에 로그인하는 것은 무척 편리하다. 하지만 편리함이 전부가 아니다. 서드 파티 사이트에 새 계정을 생성하거나 SNS 계정의 아이디, 비밀번호를 입력하는 것보다 안전하다.
구글 계정으로 서드 파티 어플리케이션 A에 로그인하는 상황을 가정하겠다. A가 구글 계정의 프로필을 사용하기 위해서는, 사전에 A가 구글 계정에 대한 접근 권한을 가지고 있어야 한다.
과거에는 서드 파티 어플리케이션에 구글 아이디와 패스워드를 전달해야 구글 서비스에 접근할 수 있었다. 하지만 이는 굉장히 큰 도박이다. 서드 파티 어플리케이션이 구글 계정을 악의적인 용도로 사용하지 않길 믿어야 한다.
반면, OAuth는 특정 자원에 대해서만 접근 권한을 부여하여 해당 문제를 해결한다.
구글 계정으로 로그인
버튼을 누르면, 구글로 리다이렉트된다.승인
버튼을 클릭하면 access token과 access token secret이 생성된다.이처럼 OAuth는 구글 계정에 대한 모든 권한을 제공하는 대신, 특정 자원에만 접근할 수 있는 특수한 키를 제공한다. 즉, A 어플리케이션이 해킹 당하더라도 구글 비밀번호는 안전하다. 해커가 A를 이용하여 구글의 특정 자원을 이용할 수 있지만, 구글 설정에서 A 어플리케이션에 대한 접근을 취소하면 해결된다.