Skip to content

OAuth2 для клиентов

Для кого этот раздел

В данном разделе приведена информация для администраторов сайтов, подключенных к сервису Auth-movies.

Ниже приведено пошаговое описание процесса подключения авторизации, используя протокол OAuth2.

1. Получить авторизационный URL

На первом шаге вам нужно направить пользователя на специальную авторизационную страницу OAuth провайдера, например, Яндекс или Google. На этой странице пользователю будет предложено подтвердить доступ сервиса Auth-movies к его аккаунту (логину, имени и email) либо залогиниться, если ош еще не залогинен.

Для того чтобы получить авторизационны URL, нужно выполнить следующий POST запрос:

POST api/v1/oauth/authorize-url/

provider=<название OAuth провайдера>
client_redirect_url=<адрес вашего сайта>
Параметр Описание
provider OAuth провайдер. Одно из значений: yandex, google, mail
client_redirect_url Адрес вашего сайта, на который будет отправлен GET запрос, после того как пользователь подтвердит доступ к своему аккаунту на странице провайдера

Содержание ответа:

{
    "state": "str",
    "authorize_url": "uri"
}

2. Направить пользователя на авторизационный URL

Выполните редирект пользователя на авторизационный URL, полученный на предыдущем шаге.

3. Авторизация у провайдера

Перейдя по авторизационному URL, опльзователю будет предложено залогиниться на сервисе провайдера, если он еще не залогинен, либо подтвердить предоставление доступа сервиса Auth-movies к информации своего аккаунта.

После того как пользователь подтверждает доступ, выполняется редирект на адрес сервиса Auth-movies, при этом передается код авторизации. Сервис Auth-movies отправляет полученный код авторизации на client_redirect_uri. Код авторизации отправляется в параметре запроса code.

4. Обмен кода авторизации на токены доступа

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

Для этого нужно отправить следующий POST запрос:

Danger

Обратите внимание: параметры передаются в formData.

POST api/v1/oauth/authorize/

provider=<название OAuth провайдера>
state=<строка>
code=<строка>
Все параметры необходимо передать 1 в 1 без изменений как во входящем GET запросе.

Формат ответа:

{
    "access_token": "jwt",
    "refresh_token": "jwt"
}

Что делает Auth-movies

Auth-movies выполняет следующую работу:

  1. Обменивает полученный код авторизации на токены доступа к сервису провайдера;
  2. Получает информацию о пользователе - имя, логин, email;
  3. Создает нового пользователя в сервисе Auth-movies;
  4. Создает access_token и refresh_token для нового пользователя.