INTEGRATIONS / REACT

React и SPA

Для браузерного клиента используйте Authorization Code + PKCE. Не помещайте client_secret в JavaScript.

RustCloak / Технические материалы · Сверяйте примеры с используемой версией проекта.

Шаг 1. Регистрация клиента

Создайте OIDC client для SPA, укажите точные redirect URI и разрешённые web origins. Не используйте wildcard redirect URI.

Шаг 2. Библиотека OIDC

Выберите поддерживаемый OIDC client, который реализует PKCE, state, обработку callback и хранение данных без раскрытия чувствительных значений.

reference, not drop-in SDK code · typescript
// Псевдоконфигурация: поля зависят от выбранной библиотеки
const oidc = {
  authority: 'https://id.example.org/realms/master',
  client_id: 'my-spa',
  redirect_uri: 'https://app.example.org/callback',
  response_type: 'code',
  scope: 'openid profile',
  // PKCE: S256
};

Шаг 3. Защита приложений

Ресурсный сервер должен самостоятельно валидировать access token; наличие токена в браузере не означает авторизацию. Разрешения проверяются на backend.

Риски интеграции

  • Неверный redirect URI или CORS
  • Хранение токенов в localStorage без оценки угроз
  • Отсутствие проверки state после callback
  • Передача client_secret в публичный bundle