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 позволяет авторизоваться на удаленном сервисе. Сервис должен поддерживать данный протокол. После авторизации возможно получение необходимых данных.

Оставить комментарий

Только авторизованные пользователи могут оставлять комментарии. Пожалуйста авторизуйтесь или пройдите регистрацию.