OAuth2 및 Facebook 로그인에 대해 알아야 할 사항

게시 됨: 2022-03-10
빠른 요약 ↬ OAuth2를 사용하면 사용자가 앱에 쉽게 로그인하고 모든 웹사이트의 비밀번호를 기억할 필요가 없으며 보안을 신뢰할 수 있습니다. OAuth2 채택에 근접한 다른 보안 프로토콜이 없기 때문에 OAuth2가 업계를 지배합니다.

OAuth2가 무엇인지 궁금하시다면 누구나 Facebook 계정으로 로그인할 수 있게 해주는 프로토콜입니다. 앱과 웹사이트 어디에서나 "Facebook으로 로그인" 버튼을 활성화합니다.

이 기사에서는 "Facebook으로 로그인"이 어떻게 작동하는지 보여주고 그 뒤에 있는 프로토콜을 설명합니다. Facebook, Google, Microsoft 또는 OAuth2를 지원하는 다른 많은 회사 중 하나에 로그인하려는 이유를 알게 될 것입니다.

이 기사에서는 "Facebook으로 로그인"이 어떻게 작동하는지 보여주고 그 뒤에 있는 프로토콜을 설명합니다. Facebook, Google, Microsoft 또는 OAuth2를 지원하는 다른 많은 회사 중 하나에 로그인하려는 이유를 알게 될 것입니다.

Spotify가 Facebook을 사용하여 Spotify 모바일 앱에 로그인할 수 있도록 하는 이유와 Quora가 Google 및 Facebook을 사용하여 웹사이트에 로그인할 수 있도록 하는 이유의 두 가지 예를 살펴보겠습니다.

SmashingMag에 대한 추가 정보:

  • 모바일 애플리케이션을 구축하는 4가지 방법
  • 정직한 UI를 구축하고 사용자가 더 나은 결정을 내리도록 돕는 방법
  • 출시 후 Android 앱의 인기 유지
  • 코딩 및 디자인 세션에 활력을 불어넣는 Spotify 재생 목록
점프 후 더! 아래에서 계속 읽기 ↓

OAuth2 이전

OAuth2는 몇 년 전 표준 전쟁에서 승리했습니다. 주요 공급업체에서 지원하는 유일한 인증 프로토콜입니다. Google은 모든 API에 OAuth2를 권장하며 Facebook의 Graph API는 OAuth2만 지원합니다.

OAuth2를 이해하는 가장 좋은 방법은 이전에 무엇이 있었고 왜 다른 것이 필요한지 살펴보는 것입니다. 모든 것이 기본 인증으로 시작되었습니다.

기본 인증

인증 체계는 다음 두 가지 핵심 질문에 중점을 둡니다. 당신은 누구입니까? 그리고 당신은 그것을 증명할 수 있습니까?

이 두 가지 질문을 하는 가장 일반적인 방법은 사용자 이름과 비밀번호를 사용하는 것입니다. 사용자 이름은 당신이 누구인지 말해주고 암호는 그것을 증명합니다.

기본 인증은 최초의 웹 인증 체계였습니다. 웃기게 들릴지 모르지만 1999년에 처음 발표된 사양에서 "기본 인증"은 실제 이름이었습니다.

기본 인증을 사용하면 웹 서버에서 브라우저가 이해하는 방식으로 이러한 자격 증명을 요청할 수 있습니다. 서버는 HTTP 응답 코드 401 (인증이 필요함을 의미함)을 반환하고 WWW-Authenticate 라는 특수 헤더를 응답에 추가하고 특수 값은 Basic 입니다.

브라우저가 이 응답 코드와 이 헤더를 보면 팝업 로그인 대화 상자가 표시됩니다.

기본 인증 로그인 대화 상자
기본 인증 로그인 대화 상자

기본 인증의 가장 큰 장점은 단순성입니다. 로그인 화면을 작성할 필요가 없습니다. 브라우저는 이 모든 것을 처리하고 사용자 이름과 암호를 서버로 보냅니다. 또한 사용자를 위해 암호를 기억하거나 타사 플러그인에서 가져오거나 운영 체제에서 사용자 자격 증명을 가져오는 등 브라우저에서 암호를 특별히 처리할 수 있는 기회를 제공합니다.

단점은 로그인 화면의 모양과 느낌을 제어할 수 없다는 것입니다. 즉, 스타일을 지정하거나 "비밀번호를 잊으셨습니까?"와 같은 새로운 기능을 추가할 수 없습니다. 링크 또는 새 계정을 만드는 옵션. 더 많은 사용자 지정을 원하면 사용자 지정 로그인 양식을 작성해야 합니다.

사용자 정의 로그인 양식

사용자 정의 로그인 양식은 원하는 모든 제어 기능을 제공합니다. HTML 양식을 작성하고 자격 증명을 묻는 메시지를 표시합니다. 그런 다음 양식을 제출하고 원하는 방식으로 로그인을 처리합니다. 완벽한 제어: 스타일을 지정하거나 더 자세한 정보를 요청하거나 링크를 추가할 수 있습니다.

WordPress와 같은 일부 웹사이트는 로그인 화면에 다음과 같은 간단한 형식을 사용합니다.

워드프레스 로그인 화면
워드프레스 로그인 화면

LinkedIn을 사용하면 사용자가 웹사이트의 다른 부분으로 이동할 필요 없이 동일한 페이지에서 로그인하거나 계정을 만들 수 있습니다.

링크드인 로그인 화면
LinkedIn 로그인 화면 (큰 버전 보기)

양식 기반 로그인은 매우 인기가 있지만 근본적인 문제가 있습니다. 사용자는 웹사이트에 비밀번호를 알려야 합니다.

비밀을 비밀로 유지

보안 서클에서는 비밀번호를 비밀이라고 부릅니다. 그것은 당신만이 가지고 있고 당신이 당신임을 증명하는 정보입니다. 비밀은 단순한 암호 그 이상일 수도 있습니다. 우리는 그것에 대해 조금 나중에 더 이야기 할 것입니다.

웹 사이트는 전 세계의 모든 보안 조치를 취할 수 있지만 사용자가 비밀번호를 공유하면 보안이 사라집니다. 해커는 2010년에 Gawker 웹사이트에 침입하여 많은 사용자의 비밀번호를 노출했습니다. 이것이 Gawker의 문제였지만 문제는 여기서 그치지 않았습니다. 대부분의 사람들은 비밀번호를 재사용하므로 해커는 Gawker에서 유출된 데이터를 가져와 Gmail, Facebook 및 eBay와 같은 보다 중요한 웹사이트에 로그인하려고 했습니다. 더 중요한 일에 Gawker 암호를 사용한 사람은 Hulk Hogan의 섹스 테이프에 대한 최신 가십보다 훨씬 더 많은 것을 잃었습니다.

사용자가 여러 계정에 대해 암호를 재사용하지 않도록 하는 것이 문제의 전반부이며 불가능합니다. 사람들이 인터넷 전체에서 다른 계정을 만들어야 하는 한 암호를 다시 사용할 것입니다.

문제의 후반부는 비밀번호를 안전하게 저장하는 것입니다.

누군가가 앱에 로그인하면 비밀번호를 확인해야 하며, 이는 비밀번호를 확인하기 위한 사본이 필요함을 의미합니다. 모든 사용자 이름과 비밀번호를 데이터베이스 어딘가에 저장할 수 있지만 이제는 해당 비밀번호를 분실하거나 해킹당할 위험이 있습니다. 가장 좋은 방법은 SHA-2 함수 중 하나와 같은 해시 함수를 사용하는 것입니다. 이 기능은 데이터를 절대 되돌릴 수 없는 방식으로 암호화하지만 암호화를 복제할 수 있습니다. "내 비밀번호"는 매번 bb14292d91c6d0920a5536bb41f3a50f66351b7b9d94c804dfce8a96ca1051f2 와 같은 것으로 해시됩니다.

이제 우리는 큰 풀을 뜯고 있습니다. 암호화 프로토콜을 구현하는 방법을 알려드리겠습니다. 다음으로, 데이터에 솔트를 추가하는 방법과 메시지 가로채기 공격에 대해 읽어야 할 교과서를 설명해야 합니다. 앱을 작성하기만 하면 이제 보안 전문가가 되어야 합니다. 뒤로 물러나야 합니다.

OAuth2

보안 전문가가 아닐 수도 있습니다. 당신이 그렇다 하더라도, 나는 여전히 당신을 내 비밀번호로 신뢰하지 않을 것입니다. OAuth2는 더 나은 방법을 제공합니다.

예를 들어, 저는 iPad에서 Spotify를 사용합니다. 나는 음악을 듣기 위해 회사에 한 달에 10달러를 지불합니다. Spotify를 사용하면 3개의 장치에서만 액세스할 수 있으므로 다른 사람이 내 계정을 사용하지 못하도록 암호가 필요합니다. 내 Spotify 계정은 큰 보안 문제가 아닙니다. 해킹을 당한다고 세상이 끝나는 것은 아니지만 회사에 내 신용 카드가 있으므로 안전한지 확인하고 싶습니다.

나는 Spotify에 거의 로그인하지 않기 때문에 다른 계정을 만들고 싶지 않고 다른 비밀번호를 기억해야 합니다. Spotify는 더 나은 옵션을 제공합니다.

_Facebook으로 로그인_ 옵션이 있는 Spotify 로그인 화면
"Facebook으로 로그인" 옵션이 있는 Spotify 로그인 화면(큰 버전 보기)

내 Facebook 계정을 사용하여 로그인할 수 있습니다. 해당 버튼을 탭하면 Spotify에서 나를 facebook.com으로 보내고 거기에 로그인합니다. 이것은 작은 세부 사항처럼 보일 수 있지만 전체 프로세스에서 가장 중요한 단계입니다.

Spotify용 Facebook 로그인 화면
Spotify용 Facebook 로그인 화면(큰 버전 보기)

Spotify의 프로그래머는 로그인 양식을 직접 작성한 다음 백엔드 API를 사용하여 내 사용자 이름과 비밀번호를 Facebook에 보낼 수 있었지만 내가 그렇게 하지 않기를 바라는 두 가지 큰 이유가 있습니다.

  • 내 Facebook 비밀번호로 Spotify를 신뢰하지 않습니다. 나는 Facebook을 사용하여 친구들과 연결하고 해킹을 당하고 싶지 않습니다. Spotify가 암호를 올바르게 처리할 것이라고 믿지 않습니다. 나는 또한 그것이 재미있는 일을 하고 싶은 유혹을 피할 것이라고 믿지 않습니다. 나중에 사용할 수 있도록 저장하려고 할 수도 있습니다. 해커가 잡을 수 있도록 Facebook으로 보내기 전에 어딘가에 파일에 기록하는 버그가 있을 수 있습니다. 죄송합니다, 스포티파이; 나는 단지 신뢰하는 유형이 아닙니다.
  • Spotify가 모든 것을 하게 하고 싶지 않습니다. Spotify에서 음악을 재생하고 싶습니다. 나는 Spice Girls를 들을 때 그것이 내 친구의 담벼락에 게시되는 것을 원하지 않습니다. 또한 내 친구 목록을 다운로드하고 Spotify에 가입하도록 버그를 만들고 싶지 않습니다. Spotify에 내 Facebook 비밀번호를 입력하면 Facebook에서 나로 로그인할 수 있습니다. 그것은 내가 할 수 있는 모든 것을 할 수 있었다.

Spotify가 그렇게 하기를 원하지 않는 두 가지 큰 이유가 있습니다.

  • Facebook에는 로그인할 수 있는 여러 옵션이 있습니다 . 사용자 이름과 비밀번호로 로그인하거나 Facebook 앱으로 로그인할 수 있습니다. Facebook에서 비밀번호를 검색하거나 Spotify에서 제공할 수 없는 도움을 받을 수도 있습니다. Spotify에 비밀번호를 지정했다면 해당 옵션을 사용할 수 없었을 것입니다.
  • 내 비밀은 비밀번호가 아닐 수도 있습니다. . 내 월 10달러짜리 Spotify 계정에는 비밀번호 하나로 보안이 충분하지만 은행이나 더 중요한 것에는 충분하지 않을 수 있습니다. 내가 제공할 수 있는 다른 비밀이 많이 있습니다. 스마트 카드가 있거나 미션 임파서블 영화에 살고 망막 스캐너를 사용할 수 있습니다.

나는 미션 임파서블 영화에 나오지 않지만 현실 세계에서는 많은 회사들이 비밀번호와 다른 것 같은 2단계 인증을 사용합니다. 가장 일반적인 방법은 휴대전화를 사용하는 것입니다. 로그인하려고 하면 회사에서 몇 분 동안 지속되는 특수 코드가 포함된 문자를 보냅니다. 그런 다음 코드를 입력하거나 앱을 사용하여 입력합니다.

이제 회사는 아무도 귀하의 전화 없이 귀하의 계정에 로그인할 수 없다고 확신합니다. 누군가 귀하의 비밀번호를 도용해도 여전히 로그인할 수 없습니다. 귀하가 휴대전화를 분실하지 않는 한 모든 것이 안전합니다.

Facebook은 유일한 OAuth2 공급자가 아닙니다. 내 Google 계정으로 Quora에 로그인할 때 Google은 Quora에서 무엇을 하고 싶은지 알려주고 괜찮은지 묻습니다.

Google Quora OAuth2 프로세스의 2단계 대화상자
Google 및 Quora OAuth2 프로세스에 대한 2단계 대화 상자

Quora가 내 이메일 주소와 기본 프로필 데이터를 볼 수 있도록 허용하면 괜찮겠지만 내 연락처를 관리하는 것은 원하지 않습니다. OAuth2는 Quora가 원하는 모든 액세스 권한을 보여주므로 액세스 권한을 부여할 대상을 선택할 수 있습니다.

이것이 OAuth2의 장점입니다. 어떻게 작동하는지 봅시다.

OAuth2 작동 방식

Facebook, Google 및 대부분의 다른 OAuth2 공급자는 기본 클라이언트를 웹 클라이언트와 다르게 취급합니다. 네이티브 클라이언트는 더 안전한 것으로 간주되며 몇 달 동안 지속될 수 있는 토큰과 새로 고침 토큰을 받습니다. 웹 클라이언트는 일반적으로 사용자가 브라우저를 닫거나 웹사이트를 한동안 클릭하지 않을 때 시간이 초과되는 훨씬 더 짧은 토큰을 받습니다.

두 경우 모두 로그인 프로세스는 동일합니다. 차이점은 사용자가 이를 거쳐야 하는 빈도입니다.

OAuth2 로그인은 다음과 같은 일반적인 단계를 따릅니다.

  1. 사용자가 인증이 필요한 작업을 시도합니다. 이것은 앱을 열거나 "로그인" 버튼을 클릭하는 것만큼 간단할 수 있습니다.
  2. 앱 또는 웹사이트에서 사용자가 아직 로그인하지 않은 것으로 확인하고 로그인 프로세스를 시작합니다. 웹 페이지를 열고 Facebook, Google 또는 OAuth2를 제공하는 다른 웹사이트의 특수 URL로 전송하여 이를 수행합니다.

OAuth2 공급자에 대한 새 브라우저 창을 여는 것은 중요한 단계입니다. 이것이 공급자가 자신의 로그인 양식을 표시하고 각 사용자에게 필요한 로그인 정보를 요청할 수 있도록 하는 것입니다. 대부분의 앱은 포함된 웹 보기를 사용하여 이 작업을 수행합니다.

공급자의 로그인 URL과 함께 공급자에게 자신이 누구이며 무엇을 하고 싶은지 알려주는 URL 매개변수를 보내야 합니다.

  • client_id OAuth2 공급자에게 앱이 무엇인지 알려줍니다. 클라이언트 ID를 얻으려면 미리 앱을 등록해야 합니다.
  • redirect_uri 이것은 당신이 끝났을 때 당신이 가고 싶은 곳을 제공자에게 알려줍니다. 웹사이트의 경우 메인 페이지로 돌아갈 수 있습니다. 기본 앱은 웹 보기를 닫는 페이지로 이동할 수 있습니다.
  • response_type 이것은 당신이 돌려받고자 하는 것을 공급자에게 알려줍니다. 일반적으로 이 값은 액세스 token 을 원한다는 것을 나타내는 token 또는 액세스 code 를 원한다는 것을 나타내는 code 입니다. 공급자는 이 값을 확장하여 다른 유형의 데이터를 제공할 수도 있습니다.
  • scope 제공자에게 앱이 액세스하려는 항목을 알려줍니다. 이것은 Quora가 연락처를 관리하기 위해 액세스 권한을 요청하고 있음을 Google이 아는 방법입니다. 공급자마다 범위 집합이 다릅니다.

보안을 강화하거나 캐싱에 도움이 되는 추가 필드가 있습니다. 특정 공급자는 더 많은 필드를 추가할 수도 있지만 이 네 가지가 중요한 것입니다.

앱이 웹 보기를 열면 공급자가 인계받습니다. 그들은 단순한 사용자 이름과 비밀번호를 요구할 수도 있고, 좋아하는 선생님의 이름부터 어머니의 결혼 전 이름에 이르기까지 무엇이든 요청하는 여러 화면을 표시할 수 있습니다. 그것은 그들에게 달려 있습니다. 중요한 부분은 공급자가 완료되면 다시 리디렉션되어 토큰을 제공한다는 것입니다.

토큰에 관한 모든 것

프로세스가 완료되면 공급자가 토큰과 토큰 유형을 제공합니다. 토큰에는 액세스 토큰과 새로 고침 토큰의 두 가지 유형이 있습니다. 보유하고 있는 클라이언트 유형에 따라 요청할 수 있는 토큰 유형이 결정됩니다.

내 Spotify 앱에 로그인할 때 내 전화는 나만 사용한다고 가정하기 때문에 몇 달 동안 로그인 상태를 유지할 수 있습니다. Facebook은 토큰을 관리하는 Spotify 앱을 신뢰하고, 나는 Spotify 앱이 토큰을 잃지 않을 것이라고 믿습니다.

액세스 토큰이 시간 초과되면(일반적으로 1~2시간) Spotify는 새로 고침 토큰을 사용하여 새 토큰을 얻을 수 있습니다.

새로 고침 토큰은 몇 달 동안 지속됩니다. 그렇게 하면 1년에 몇 번만 내 전화기에 로그인하면 됩니다. 단점은 새로 고침 토큰을 잃어버리면 다른 사람이 내 계정을 몇 달 동안 사용할 수 있다는 것입니다. 새로 고침 토큰은 매우 중요하므로 iOS는 토큰을 안전하게 암호화하고 저장하는 키체인을 제공합니다.

웹 애플리케이션에서 OAuth2를 사용하는 것도 같은 방식으로 작동합니다. 웹 보기를 사용하는 대신 프레임, iframe 또는 별도의 창에서 OAuth2 로그인 요청을 열 수 있습니다. 현재 페이지에서 열 수도 있지만 이렇게 하면 누군가 로그인해야 할 때마다 모든 JavaScript 애플리케이션 상태를 잃게 됩니다.

웹 브라우저로 Quora에 로그인할 때 새로 고침 토큰을 받지 못합니다. 그들은 토큰이 시간 초과되어 브라우저를 종료하거나 점심을 먹으러 떠날 때 다시 로그인하라는 메시지를 표시하기를 원합니다. 신뢰할 수 없는 클라이언트는 중요한 새로 고침 토큰을 보유하도록 신뢰할 수 없기 때문에 토큰을 새로 고칠 수 없습니다. 훨씬 더 자주 다시 로그인하라는 메시지가 표시되기 때문에 더 안전하지만 덜 편리합니다.

앱에서 OAuth2 사용

이제 OAuth2가 작동하는 방식을 알았지만 고유한 OAuth2 클라이언트를 구현하고 싶지는 않을 것입니다. 잠을 잘 수 없다면 75페이지 분량의 OAuth 2.0 사양 전체를 읽을 수 있지만 그럴 필요는 없습니다. 사용할 수 있는 몇 가지 훌륭한 라이브러리가 있습니다.

iOS는 OAuth2를 기본적으로 지원합니다. Corrina Krych는 Swift에서 OAuth 2.0을 사용하는 방법에 대한 매우 유용한 자습서를 제공합니다. 토큰을 얻는 방법, 앱에서 보기를 통합하는 방법 및 토큰을 저장할 위치를 안내합니다.

Android에는 OAuth2도 기본적으로 지원됩니다. iOS에 집중하기 때문에 익숙하지 않다는 것을 인정해야 합니다. 그러나 문서에 예제를 보여주는 좋은 섹션과 더 쉽게 만들 수 있는 일부 오픈 소스 라이브러리가 있습니다.

JavaScript에는 OAuth2에 대한 기본 제공 지원이 없지만 모든 주요 JavaScript 라이브러리에 대한 클라이언트가 있습니다. React는 OAuth2를 완벽하게 지원합니다. AngularJS는 많은 프로젝트에서 OAuth2.0에 대한 타사 지원을 제공합니다. 그 중 하나를 쓰기도 했습니다.

OAuth2 클라이언트가 있으면 공급자를 선택해야 합니다.

당신은 누구를 신뢰합니까?

여기서 큰 가정은 내가 Spotify보다 Facebook을 더 신뢰한다는 것입니다. 그럴 이유가 없습니다. Facebook은 내부 보안을 공개하지 않으며 내가 감사할 좋은 방법이 없습니다. Spotify도 마찬가지입니다. OAuth2 보안에 대한 소비자 보고서가 없습니다. 저는 기본적으로 Facebook이 더 크기 때문에 신뢰하고 있습니다. 나는 다른 사람들이 그렇게 하기 때문에 페이스북을 신뢰한다.

또한 "Facebook으로 로그인" 버튼을 클릭할 때마다 Facebook을 더 신뢰하게 됩니다. Facebook이 내 비밀번호를 잊어버리면 해커가 내 Facebook 계정뿐만 아니라 Spotify 계정과 내 Facebook 계정으로 로그인한 다른 서비스에도 액세스할 수 있습니다. 장점은 문제를 해결하기 위해 비밀번호를 재설정해야 하는 곳이 한 곳뿐이라는 것입니다.

페이스북을 믿을 필요는 없지만 누군가를 믿어야 합니다. 누군가 나를 인증해야 합니다. 내가 신뢰하는 공급자를 선택해야 합니다.

OAuth2 공급자 선택

Wikipedia는 OAuth 공급자 목록을 유지 관리하지만 대부분은 신경 쓰지 않을 것입니다. 가장 큰 것은 페이스북과 구글이다. 아마존이나 마이크로소프트도 볼 수 있습니다.

네 가지 모두 크고 통합하기 쉽습니다. Facebook은 앱 등록에 대한 지침을 제공합니다. 구글에도 비슷한 단계가 있습니다. 기본 아이디어는 개발자 계정을 만든 다음 앱 ID를 만드는 것입니다. 그런 다음 공급자는 요청하는 데 사용할 수 있는 클라이언트 ID를 제공합니다.

여러 공급자를 선택할 수도 있습니다. Quora를 사용하면 Facebook 또는 Google로 로그인할 수 있습니다. 둘 다 OAuth2를 사용하기 때문에 둘 다에 대해 동일한 코드를 사용할 수 있습니다.

OAuth2에서 누락된 사항

OAuth2는 복잡한 문제를 해결하는 데 매우 훌륭하지만 몇 가지가 빠져 있습니다.

  • 표준은 완전히 표준이 아닙니다. 몇 가지 if 문 없이 Facebook과 Google 모두에 로그인할 수 있는 단일 OAuth2 클라이언트를 작성할 수 없었습니다. 각각은 사양을 다르게 해석하며 각각에 대해 유사한 세부 사항이 거의 없습니다. 그들은 또한 제공할 범위에 대해 항상 다른 아이디어를 가지고 있습니다. 라이브러리를 사용하여 OAuth2와 통합하면 이 문제에 많은 도움이 되지만 앱 코드에서 100% 투명하지는 않습니다.
  • 로그아웃은 까다롭습니다. . OAuth2를 사용하는 모든 앱이나 웹사이트에는 로그아웃 버튼이 있지만 대부분은 토큰을 무효화하지 않고 잊어버릴 것입니다. 앱은 현재 토큰을 모두 잊어버리고 다른 사람이 로그인하도록 허용하지만 토큰은 여전히 ​​유효합니다. 해커가 귀하의 토큰을 훔쳐도 여전히 토큰을 사용하여 귀하로 로그인할 수 있습니다.

OAuth2 토큰을 무효화하기 위한 별도의 사양이 있지만 많은 주요 제공업체에서 이를 선택하지 않았습니다. OAuth2는 해커가 새로 고침 토큰을 얻은 경우 복구하는 방법을 제공하지 않습니다. 토큰의 로컬 복사본을 삭제할 수 있더라도 해커는 여전히 토큰을 가지고 있습니다. 많은 공급자가 계정을 일시 중지하는 방법을 제공하지만 표준 방법은 없습니다.

OAuth2를 방어하기 위해 많은 공급자가 공개 키 암호화를 사용하여 상태 비저장 토큰을 생성하기 때문에 이는 어려운 문제입니다. 이것은 서버가 생성한 토큰을 기억하지 못하므로 나중에 잊어버릴 수 없음을 의미합니다.

OAuth2의 또 다른 주요 문제는 공급자에 의존한다는 것입니다. Facebook이 다운되면 앱의 "Facebook으로 로그인" 버튼도 다운됩니다. Google에서 OAuth2를 지원하기 위해 비용을 청구하기 시작하거나 수익을 공유하도록 요구하는 경우 할 수 있는 일은 없습니다. 이것은 공급자를 신뢰하는 양날의 검입니다. 그들은 당신을 위해 많은 일을 하고 있지만 당신의 사용자를 통제합니다.

OAuth2는 세계를 실행합니다

몇 가지 누락된 기능과 큰 의존성에도 불구하고 OAuth2는 여전히 탁월한 선택입니다. 사용자가 앱에 쉽게 로그인할 수 있고 모든 웹사이트의 비밀번호를 기억할 필요가 없으며 보안을 신뢰할 수 있습니다. OAuth2는 매우 인기 있는 선택입니다. 업계를 지배하고 있습니다. 다른 보안 프로토콜은 OAuth2의 채택에 근접하지 않습니다.

이제 OAuth2의 출처와 작동 방식을 알았습니다. 신뢰할 수 있는 사람을 현명하게 선택하고 암호화된 암호를 안전하게 저장하는 방법에 대한 기사 읽기를 중단하고 놀라운 앱을 작성하는 데 더 많은 시간을 할애하십시오.