Реализация OAuth2
Сервис Auth-movies предоставляет возможность авторизации пользователей с помощью социальных сетей по протоколу OAuth2.
Поддерживаемые провайдеры
Поддерживаются следующие провайдеры социальных сетей:
- Yandex
Как работает OAuth2
Последовательность действий при регистрации пользователя с помощью социальной сети следующая:
- Сначала нужно получить авторизационный URL-адрес провайдера социальной сети, на который
необходимо перенаправить пользователя. Для этого нужно отправить POST запрос на адрес
api/v1/oauth/authorize-url/
. При этом необходимо передать название провайдера, например,yandex
иclient_redirect_uri
- адрес вашего сайта, на который будет отправлен код авторизации. Авторизационный URL возвращается в теле ответа; - Далее вашему web приложению необходимо перенаправить пользователя на полученный авторизационный URL. Пользователь должен подтвердить доступ сервиса Auth-movies к его аккаунту. Доступ предоставляется на чтение имени, логина и email;
- Как только пользователь подтверждает доступ, ему выдается авторизационный код. После этого
сервис Auth-movies отправляет GET запрос на адрес, указанный в
client_redirect_uri
(см. п.1); - Ваше web приложение должно принять поступивший GET запрос, получить из него все параметры,
включая код авторизации и обменять его на пару
access_token
иrefresh_token
- токены доступа для сервиса онлайн-кинотеатра Movies.
sequenceDiagram
participant W as Web-app
participant A as Auth-movies
participant Y as Yandex
autonumber
Note left of W: Войти через yandex
W->>A: POST /authorize-url
A->>W: `authorize_url`
W->>Y: Направить пользователя на `authorize_url`
Note right of Y: Подтверждение доступа
Y->>A: code
A->>W: code
W->>A: POST /authorize
A->>W: access_token