vorst.ru - Статьи о задачах возникающих при создании сайта и их решении
Статьи помеченные algorithm

OAuth2 аутентификация на примере Google

Как работает аутентификация OAuth2

Если у вас есть аккаунт в Google, то вы наверняка пользовались документами. Например, электронными таблицами.

Доступ к таблицам разрешен только вам и тем, кому вы предоставите такое право. Причем доступ возможен не только из Google.

Можно просматривать список таблиц и редактировать выбранную таблицу оставаясь в рамках своего приложения. Примерно так - http://sample.vorst.ru/googl


Как устроена структура данных Nested Set

Как сделать рубрикатор

Рубрикатор, как средство поиска интересных статей, имеет свои недостатки - трудно придумать иерархию, названия рубрик, трудно потом решить к какой конкретно рубрике относится статья. "Но, так принято" - скажите вы и будете правы.

Поэтому, давайте делать рубрикатор.


Какую статью выбрать следующей или предыдущей

Как выбрать все статьи в цепочке

В предыдущей статье речь шла о несколько необычном подходе к организации контента в блоге. Суть его в том, что не обязательно все мысли излагать в одной статье, можно это делать постепенно от статьи к статье. В промежутках рассуждая о других вещах и размещая статьи по другим темам.

Обычно для связывания таких статей используются рубрики и метки. Даже с присвоением меток возникают проблемы, а с рубриками еще сложнее. Им надо давать названия, придумывать иерархию. И даже это, в результате, не всегда помогает.



Поиск



OAuth2 аутентификация на примере Google

Как работает аутентификация OAuth2

Если у вас есть аккаунт в Google, то вы наверняка пользовались документами. Например, электронными таблицами.

Доступ к таблицам разрешен только вам и тем, кому вы предоставите такое право. Причем доступ возможен не только из Google.

Можно просматривать список таблиц и редактировать выбранную таблицу оставаясь в рамках своего приложения. Примерно так - http://sample.vorst.ru/googl


    Поделиться

Для доступа к эектронным таблицам разработано Google Sheets API, доступное в двух вариантах - клиентская библиотека и REST API.

Оба варианта выполняют одну и туже работу. Во многом выбор зависит от решаемой задачи.

В простых задачах, например - получить список таблиц, которые принадлежат пользователю, проще использовать REST API.

Если же необходимо активно работать с таблицей - читать построчно, проводить вычисления, сохранять результаты, то, наверное, лучше использовать библиотеку.

В обоих случаях, для начала работы, необходимо пройти процедуру авторизации на сайте Google. В свою очередь, для этого нужно зарегистрировать проект в консоли разработчика.

Сделать это не сложно используя подробную, пошаговую инструкцию - Setting up OAuth 2.0.

При создании проекта автоматически будет создана пара значений, которая понадобится при прохождении авторизации - Client ID и Client secret.

Еще один параметр - Authorized redirect URIs, вы должны ввести самостоятельно. Это адреса в вашем приложении, куда будут возвращаться результаты запросов на авторизацию. Адрес может быть один или несколько. Во-первых это удобно при отладке - можно указать локальный адрес. Во-вторых - процесс авторизации состоит из двух этапов и для каждого может быть задан свой адрес.

Итак, для авторизации необходимо:

  1. иметь аккаунт на сайте Google;
  2. создать проект с помощью консоли разработчика;
  3. сохранить Cliend ID и Client secret;
  4. ввести Authorized redirect URIs для обработки значений, полученных в процессе авторизации.

Как проходит авторизация?

Сначала отправляется запрос Google для получения кода авторизации. В качастве параметров отправляются Client ID и Authorized redirect URI. Результат запроса - Authorization code, Google отправляет вашему приложению по адресу Authorized redirect URI.

Получив Authorization code приложение отправляет еще один запрос - на получение токена. При этом, к уже упомянутым параметрам, добавляются еще Client secret и только что полученный Authorization code.

В результате получаем Access token по адресу, указанному в Authorized redirect URIs. Если все сделано верно, то можно отправлять Google любой запрос, передавая Access token в качестве параметра.

Например, запрос:

https://spreadsheets.google.com/feeds/spreadsheets/private/full

вернет список ваших таблиц в Google в формате xml.

Текст программы на github.

Заключение

Протокол OAuth2 позволяет авторизоваться на удаленном сервисе. Сервис должен поддерживать данный протокол. После авторизации возможно получение необходимых данных.

Leave a comment

Only authorized users can leave comments. Please log in or pass a registration.