Найти Π² Π”Π·Π΅Π½Π΅
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста

πŸ” πŸ”‘ OAuth 2: ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ соврСмСнная авторизация

Помнишь ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· GoogleΒ»? Π’Π° самая ΠΊΠ½ΠΎΠΏΠΊΠ°, которая избавляСт ΠΎΡ‚ нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. БСгодня Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта магия ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π³ΠΈΠ³Π°Π½Ρ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Spotify ΠΈ Medium ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ способ Π²Ρ…ΠΎΠ΄Π°, ΠΈ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΏΠΎΠΉΠ»Π΅Ρ€: это ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ каТСтся, ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ бСзопаснСС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ рСгистрации. Π­Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» взят ΠΈΠ· нашСй СТСнСдСльной email-рассылки, посвящСнной ИИ. ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² числС ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ дайдТСст. πŸ“§ ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ (function () { let link = document .getElementById ("2c3d7999-4dd4-42c7-8843-b5f479461eed-https://proglib.io/w/4d141e4f-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) {
ОглавлСниС

Помнишь ΠΊΠ½ΠΎΠΏΠΊΡƒ Β«Π’ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· GoogleΒ»? Π’Π° самая ΠΊΠ½ΠΎΠΏΠΊΠ°, которая избавляСт ΠΎΡ‚ нСобходимости Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. БСгодня Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ эта магия ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π³ΠΈΠ³Π°Π½Ρ‚Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Spotify ΠΈ Medium ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠΉ способ Π²Ρ…ΠΎΠ΄Π°, ΠΈ ΠΊΠ°ΠΊ Π²Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΏΠΎΠΉΠ»Π΅Ρ€: это ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ каТСтся, ΠΈ Π³ΠΎΡ€Π°Π·Π΄ΠΎ бСзопаснСС Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ рСгистрации.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» взят ΠΈΠ· нашСй СТСнСдСльной email-рассылки, посвящСнной ИИ. ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² числС ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ дайдТСст.

πŸ“§ ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ

(function () { let link = document .getElementById ("2c3d7999-4dd4-42c7-8843-b5f479461eed-https://proglib.io/w/4d141e4f-2"); if (! link) return; let href = link .getAttribute ("href"); if (! href) return; let prefix = link .dataset .prefix; let action = link .dataset .action; link .addEventListener ("click", function (e) { let data = new FormData (); data .append ("url", href); apiFetch (action, { method: "POST", body: data }) .then (function (res) {}) .catch (function (err) { console .error (err); }); }) })();

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ OAuth

OAuth прСдоставляСт Π²Π΅Π±-прилоТСниям простой* способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· сторонниС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Google, GitHub ΠΈΠ»ΠΈ ЯндСкс), Π½Π΅ храня ΠΈ Π½Π΅ обрабатывая ΠΏΠ°Ρ€ΠΎΠ»ΠΈ.

   Но Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ Ρ‚Π°ΠΊ-Ρ‚ΠΎ просто Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… OAuth 2
Но Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π΅ Ρ‚Π°ΠΊ-Ρ‚ΠΎ просто Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ… OAuth 2

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ OAuth

   ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ участники OAuth
ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ участники OAuth

Π’Π»Π°Π΄Π΅Π»Π΅Ρ† рСсурса (Resource Owner)

Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‡Π΅Ρ‚ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π΅Ρ‚ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π² Google ΠΈ являСтся Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² этом Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Π΅.

ΠšΠ»ΠΈΠ΅Π½Ρ‚ (Client)

ΠšΠ»ΠΈΠ΅Π½Ρ‚ – это вашС Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠΌΠ΅Π½ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π΅ имСя доступа ΠΊ Π΅Π³ΠΎ ΠΏΠ°Ρ€ΠΎΠ»ΡŽ. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρƒ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ займСтся Google ΠΈΠ»ΠΈ GitHub.

Π‘Π΅Ρ€Π²Π΅Ρ€ рСсурсов (Resource Server)

Π‘Π΅Ρ€Π²Π΅Ρ€ рСсурсов Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ нашСм случаС, Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Google, Ρ‚ΠΎ сСрвСром рСсурсов Π±ΡƒΠ΄Π΅Ρ‚ сСрвСр Google, Π³Π΄Π΅ хранится информация ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΡ….

Π‘Π΅Ρ€Π²Π΅Ρ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ (Authorization Server)

Π‘Π΅Ρ€Π²Π΅Ρ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ – это сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ провСряСт Π»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ доступа Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΈΠΌ сСрвСром Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ сСрвСр Google.

Π­Ρ‚Π°ΠΏΡ‹ OAuth-процСсса

   Π‘Ρ…Π΅ΠΌΠ° процСсса OAuth
Π‘Ρ…Π΅ΠΌΠ° процСсса OAuth

Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

πŸ•Έ Π’Π΅Π±-аутСнтификация: Ρ„Π°ΠΉΠ»Ρ‹ cookies ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹?

Π¨Π°Π³ 1. РСгистрация прилоТСния

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ OAuth с вашим Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΡƒΠΆΠ½ΠΎ сначала Π·Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρƒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° OAuth (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Google ΠΈΠ»ΠΈ ЯндСкс). Π’Ρ‹ заполняСтС Ρ„ΠΎΡ€ΠΌΡƒ Π½Π° ΠΏΠΎΡ€Ρ‚Π°Π»Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², указывая ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • НазваниС прилоТСния
  • АдрСс сайта
  • URL для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° (Callback URL, ΠΊΡƒΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ послС Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ)

ПослС рСгистрации Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π΄Π²Π° Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°:

  • Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Client ID)
  • Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (Client Secret)

Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для подтвСрТдСния, Ρ‡Ρ‚ΠΎ запросы Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ΄ΡƒΡ‚ ΠΎΡ‚ вашСго прилоТСния.

Π¨Π°Π³ 2. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° сайт

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²ΠΎΠΉΡ‚ΠΈ Π² систСму. Для этого вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ прСдоставляСт Π΅ΠΌΡƒ ссылку для Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, которая ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ Π΅Π³ΠΎ ΠΊ OAuth-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ.

Π¨Π°Π³ 3. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ доступ

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° ссылку, Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Π½Π° страницу Π²Ρ…ΠΎΠ΄Π° Π² сСрвис ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ свои Π΄Π°Π½Π½Ρ‹Π΅ для Π²Ρ…ΠΎΠ΄Π° ΠΈ Π²ΠΈΠ΄ΠΈΡ‚ экран подтвСрТдСния, Π³Π΄Π΅ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚, согласСн Π»ΠΈ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ доступ ΠΊ своим Π΄Π°Π½Π½Ρ‹ΠΌ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

Π¨Π°Π³ 4. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅Ρ‚ доступ, ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ пСрСнаправляСт Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° URL (ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° шагС 1), ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ пСрСдавая ΠΊΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π¨Π°Π³ 5. ОбмСн ΠΊΠΎΠ΄Π° Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ доступа

Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ΄ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ отправляСт Π΅Π³ΠΎ Π½Π° сСрвСр Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ OAuth-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° для получСния Ρ‚ΠΎΠΊΠ΅Π½Π° доступа. Π‘Π΅Ρ€Π²Π΅Ρ€ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ провСряСт ΠΊΠΎΠ΄ ΠΈ, Ссли всС Π² порядкС, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ доступа (ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Ρ‰Π΅ ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ для продлСния доступа послС истСчСния срока дСйствия основного Ρ‚ΠΎΠΊΠ΅Π½Π°). Π’Π΅ΠΏΠ΅Ρ€ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ доступа для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ (Π΄ΠΎ истСчСния срока дСйствия Ρ‚ΠΎΠΊΠ΅Π½Π°).

OAuth ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ сцСнарии Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ описанная Π²Ρ‹ΡˆΠ΅ схСма остаСтся самой популярной.

πŸ’» Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста

Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

***

А ΠΊΠ°ΠΊΠΎΠΉ способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Π² своих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… Ρ‚Ρ‹?