Authomatic python бібліотека для аутентифікації та авторизації

Залишається справжня дрібниця, продати необхідний протокол стосовно конкретного веб-додатку. Реєстрація та вхід до веб-сервісу TheOnlyPage з використанням облікових записівFacebook,Google,LinkedInтаMicrosoft Liveпрацюють завдяки python бібліотеці Authomatic.

Незважаючи на таку самокритичну заяву, якщо звернутися до демонстраційної сторінки, можна переконатися, що бібліотека забезпечує безпроблемну роботу з усілякими провайдерамиOAuth 1.0aтаOAuth 2.0.

Якісна документація дає достатньо інформації для використання бібліотеки спільно з фреймворками:Django,Flask,PyramidтаWebapp2.

Проілюструємо роботу зAuthomaticна прикладі реального життя. Для того, щоб зареєструватися / увійти до веб-сервісу TheOnlyPage за допомогою облікового записуFacebook,Google,LinkedInтаMicrosoft Liveдостатньо клікнути по відповідній на сторінці входу в сервіс:

  1. Зареєструвати свою програму в кожному з OAuth-провайдерів.
  2. Додати параметри провайдерів OAuth до конфігураційного файлу.
  3. Ініціювати базовий об'єкт authomatic параметрами, що зберігаються у конфігураційному файлі.
  4. Створити уявлення, яке виконає запит до провайдера та отримає від нього результат.
Зробимо ці 4 нехитрих кроки:

Реєстрація програми

Кожен провайдер має свої особливості реєстрації. Адреси реєстрації програми

Деякі параметри, які потрібно вказати, у різних провайдерів можуть відрізнятися, але серед інших параметрів обов'язково присутні:

для Facebook:email

для Google:email

для LinkedIn:r_emailaddress

дляMicrosoft Live:wl.emails

Визначення конфігурації OAuth-провайдерів

У стандартний конфігураційний файл flask-програми потрібно додати словник, який містить параметри всіх провайдерів:

Як бачимо кожному провайдеру ставиться у відповідність словник із наступними атрибутами:

class_ - клас, що входить до складу бібліотеки Authomatic, відповідний черговому провайдеру;

consumer_key - код користувача у чергового провайдера;

consumer_secret – секретний ключ чергового провайдера;

scope - список даних, які передбачається вимагати у чергового провайдера.

Попередні установки зроблено.

Ініціація базового об'єкта authomatic

Відбувається дуже просто, із зазначенням конфігураційних даних та секретного рядка:

Створення уявлення

Основна частина взаємодії з oauth-провайдером зводиться до одного рядка:

Як бачите зовсім нескладно. Основну частину часу займає не програмування, а реєстрація своєї програми у кожному з використовуваних провайдерів.