2.8 KiB
2.8 KiB
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
- Пользователь нажимает кнопку «Войти через Yandex».
- SDK перенаправляет на страницу авторизации Яндекса с
redirect_uri=https://test.ruact.ru/auth/callback. - После авторизации Яндекс возвращает браузер на
/auth/callbackсcodeиstate. - Страница
/auth/callbackотправляет эти данные на backend (/api/v1/auth/callback/yandex). - 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").