Skip to content

Реализация OAuth2

Сервис Auth-movies предоставляет возможность авторизации пользователей с помощью социальных сетей по протоколу OAuth2.

Поддерживаемые провайдеры

Поддерживаются следующие провайдеры социальных сетей:

  1. Yandex
  2. Google
  3. Mail

Как работает OAuth2

Последовательность действий при регистрации пользователя с помощью социальной сети следующая:

  1. Сначала нужно получить авторизационный URL-адрес провайдера социальной сети, на который необходимо перенаправить пользователя. Для этого нужно отправить POST запрос на адрес api/v1/oauth/authorize-url/. При этом необходимо передать название провайдера, например, yandex и client_redirect_uri - адрес вашего сайта, на который будет отправлен код авторизации. Авторизационный URL возвращается в теле ответа;
  2. Далее вашему web приложению необходимо перенаправить пользователя на полученный авторизационный URL. Пользователь должен подтвердить доступ сервиса Auth-movies к его аккаунту. Доступ предоставляется на чтение имени, логина и email;
  3. Как только пользователь подтверждает доступ, ему выдается авторизационный код. После этого сервис Auth-movies отправляет GET запрос на адрес, указанный в client_redirect_uri (см. п.1);
  4. Ваше 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