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=<строка>
Формат ответа:
{
"access_token": "jwt",
"refresh_token": "jwt"
}
Что делает Auth-movies
Auth-movies выполняет следующую работу:
- Обменивает полученный код авторизации на токены доступа к сервису провайдера;
- Получает информацию о пользователе - имя, логин, email;
- Создает нового пользователя в сервисе Auth-movies;
- Создает
access_token
иrefresh_token
для нового пользователя.