goauthsocialfrontendtest/goauthsocialfrontendtest/README.md
2025-10-28 12:07:40 +05:00

2.8 KiB
Raw Blame History

GoAuthSocial Frontend (Next.js)

Пример интерфейса на Next.js для подключения к сервису авторизации GoAuthSocial и входа через Yandex ID.

Требования

  • Node.js 18+
  • Настроенный бэкенд GoAuthSocial с включённым провайдером Yandex
  • Зарегистрированное приложение Yandex ID (client_id, redirect_uri)

Переменные окружения

Создайте файл .env.local (см. /.env.local.example) и задайте:

NEXT_PUBLIC_API_BASE_URL=https://test.ruact.ru
NEXT_PUBLIC_YANDEX_CLIENT_ID=xxxxxxxxxxxxxxxxxxxx
NEXT_PUBLIC_YANDEX_REDIRECT_URI=https://test.ruact.ru/auth/callback

NEXT_PUBLIC_YANDEX_REDIRECT_URI должен совпадать с адресом, указанным в настройках приложения Yandex ID.

Запуск в разработке

pnpm install
pnpm dev

После сборки и деплоя фронтенд обслуживается по https://test.ruact.ru. На главной странице размещена кнопка Yandex ID (через SDK sdk-suggest).

Пользовательский flow

  1. Пользователь нажимает кнопку «Войти через Yandex».
  2. SDK перенаправляет на страницу авторизации Яндекса с redirect_uri=https://test.ruact.ru/auth/callback.
  3. После авторизации Яндекс возвращает браузер на /auth/callback с code и state.
  4. Страница /auth/callback отправляет эти данные на backend (/api/v1/auth/callback/yandex).
  5. Backend возвращает AuthCallbackResponse с токенами и application_token.

Если SDK не загрузился, отображается fallback‑кнопка, которая запрашивает redirect URL у бэкенда (/api/v1/auth/authorize/yandex) и вручную выполняет перенаправление.

Дальнейшая интеграция

  • Сохраните application_token и токены провайдера в хранилище клиента.
  • Организуйте авторизованные запросы к API через application_token.
  • Реализуйте обработку ошибок и logout под требования конкретного продукта.

Скрипт Yandex ID

Документация: https://yandex.ru/dev/id/doc/ru/suggest/script-sdk-suggest
В проекте используется рекомендуемый режим sdk-suggest с кнопкой авторизации (view: "button").