Skip to content

RolandSallaz/OAuth-Yandex-NestJS-Example

Repository files navigation

Как происходит OAuth запрос

  1. Клиент (браузер)
    Фронтенд кликает на кнопку
<button
  onClick={() => {
    window.location.href = 'https://нашБекенд/auth/yandex/login';
  }}
>
  Войти через Яндекс
</button>

И тем самым отправляет запрос GET /auth/yandex.

  1. NestJS Controller
    Запрос перехватывается AuthGuard('yandex').

  2. Passport (yandex strategy)
    Пользователь перенаправляется на страницу OAuth Яндекса.

  3. Yandex OAuth
    Пользователь логинится и подтверждает доступ.

  4. Yandex OAuth → callback
    Яндекс делает редирект обратно на
    GET /auth/yandex/callback?code=....

  5. AuthGuard('yandex')
    Guard снова перехватывает запрос callback.

  6. passport-yandex

    • обменивает code на accessToken
    • запрашивает профиль пользователя
  7. YandexStrategy.validate()
    Профиль приводится к OAuthUserDto
    (provider, providerId, email, name).

  8. req.user
    В req.user сохраняется OAuthUserDto.

  9. AuthController callback
    Вызывается запрос к сервису и бд:

    • если пользователь найден, то возвращаем его
    • если не найден - то создаем

    Далее генерируем токены и редиректим пользователя обратно на фронтенд

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors