Authentication System
Auth.js v5 multi-provider authentication with magic links, OAuth providers, crypto wallets, and GDPR compliance.
Модель защиты v1.6.0
| Слой | Роль |
|---|
proxy.ts | Перезапись локали + optimistic redirect на ROUTES.LOGIN(locale) |
(authenticated)/[locale]/layout.tsx | await auth() — каноничный gate сессии |
(admin)/[locale]/layout.tsx | Проверка роли (admin/superadmin) |
| API routes | auth() в каждом handler |
OAuth: /api/auth/* исключено из intl middleware. См. Proxy и intl.
Overview
Ring Platform uses Auth.js v5 to provide seamless authentication across multiple providers while maintaining security and user privacy.
Authentication Providers
Magic Links
- Passwordless Authentication - Email-based secure login
- One-click Access - No password required
- Secure Tokens - Time-limited access tokens
- GDPR Compliant - Privacy-first approach
OAuth Providers
- Google - Primary OAuth provider for web and mobile
- Apple - iOS/macOS native integration with Sign in with Apple
- GitHub - Developer-focused authentication
- Discord - Community platform integration
Интеграция входа через Apple
Платформа Ring поддерживает бесшовную интеграцию Sign in with Apple с использованием Auth.js v5.
Необходимые условия
Перед настройкой входа через Apple убедитесь, что у вас есть:
- Аккаунт разработчика Apple - Платный аккаунт разработчика ($99/год)
- App ID - Зарегистрированный идентификатор приложения (например,
com.yourcompany.yourapp)
- Service ID - Для веб-аутентификации (например,
com.yourcompany.auth)
- Приватный ключ - Сгенерированный в портале разработчика Apple
- Team ID - Из вашего аккаунта разработчика Apple
Настройка в Apple Developer Portal
-
Создание App ID:
- Перейдите в Certificates, Identifiers & Profiles
- Нажмите + → Выберите App IDs
- Зарегистрируйте приложение с bundle ID (например,
com.sonoratek.ring)
- Включите возможность Sign in with Apple
-
Создание Service ID:
- В разделе Identifiers → Нажмите + → Выберите Services IDs
- Создайте service ID (например,
com.sonoratek.ring-auth)
- Включите Sign in with Apple
- Настройте Return URLs (URL-адреса обратного вызова вашего приложения)
-
Генерация приватного ключа:
- Перейдите в Keys → Нажмите +
- Назовите ключ (например, "Auth Key for Ring Platform")
- Включите Sign in with Apple
- Выберите ваш App ID
- Скачайте файл приватного ключа
.p8 (храните в безопасности!)
Конфигурация окружения
Добавьте эти переменные в ваш .env.local:
Конфигурация входа через Apple
Генерация JWT
Apple требует JWT, подписанный вашим приватным ключом. Используйте этот скрипт Node.js:
Конфигурация Auth.js v5
Вход через Apple автоматически настраивается в вашем auth.config.ts:
Использование в компонентах
Особенности пользовательского опыта
- Одно касание аутентификации на устройствах Apple
- Ориентированность на приватность - Нет сбора email без согласия пользователя
- Безопасный обмен токенами - Валидация на стороне сервера
- Связывание аккаунтов - Подключение к существующим аккаунтам
- Кросс-платформенная поддержка - Работает на веб и мобильных
Меры безопасности
- Защита приватного ключа - Никогда не коммитьте файлы
.p8 в систему контроля версий
- Истечение JWT - Перегенерируйте токены каждые 6 месяцев
- Изоляция окружений - Используйте разные ключи для dev/staging/production
- Аудит логирования - Отслеживайте события аутентификации
- Ограничение частоты запросов - Защита от злоупотреблений
Устранение неполадок
Распространенные проблемы:
- "Invalid client" ошибка: Проверьте, что
AUTH_APPLE_ID соответствует вашему Service ID
- "Invalid JWT" ошибка: Проверьте генерацию JWT и срок действия
- "Domain verification failed": Убедитесь, что return URLs правильно настроены
- "Key not found" ошибка: Проверьте доступность и корректность приватного ключа
Советы по отладке:
- Проверьте логи сервера для детальных сообщений об ошибках
- Проверьте структуру полезной нагрузки JWT и подпись
- Тестируйте с инструментами разработчика Apple
- Убедитесь в правильной верификации домена в Apple Developer portal
Crypto Wallets
- MetaMask - Ethereum wallet authentication
- WalletConnect - Multi-wallet support
- Coinbase Wallet - Mainstream crypto wallet
- Trust Wallet - Mobile-first wallet integration
Implementation
Authentication Setup
Role-Based Access
// Check user role
Документация в разработке
Полная документация по аутентификации дополняется.
Authentication System
Auth.js v5 multi-provider authentication with magic links, OAuth providers, crypto wallets, and GDPR compliance.
Модель защиты v1.6.0
| Слой | Роль |
|---|
proxy.ts | Перезапись локали + optimistic redirect на ROUTES.LOGIN(locale) |
(authenticated)/[locale]/layout.tsx | await auth() — каноничный gate сессии |
(admin)/[locale]/layout.tsx | Проверка роли (admin/superadmin) |
| API routes | auth() в каждом handler |
OAuth: /api/auth/* исключено из intl middleware. См. Proxy и intl.
Overview
Ring Platform uses Auth.js v5 to provide seamless authentication across multiple providers while maintaining security and user privacy.
Authentication Providers
Magic Links
- Passwordless Authentication - Email-based secure login
- One-click Access - No password required
- Secure Tokens - Time-limited access tokens
- GDPR Compliant - Privacy-first approach
OAuth Providers
- Google - Primary OAuth provider for web and mobile
- Apple - iOS/macOS native integration with Sign in with Apple
- GitHub - Developer-focused authentication
- Discord - Community platform integration
Интеграция входа через Apple
Платформа Ring поддерживает бесшовную интеграцию Sign in with Apple с использованием Auth.js v5.
Необходимые условия
Перед настройкой входа через Apple убедитесь, что у вас есть:
- Аккаунт разработчика Apple - Платный аккаунт разработчика ($99/год)
- App ID - Зарегистрированный идентификатор приложения (например,
com.yourcompany.yourapp)
- Service ID - Для веб-аутентификации (например,
com.yourcompany.auth)
- Приватный ключ - Сгенерированный в портале разработчика Apple
- Team ID - Из вашего аккаунта разработчика Apple
Настройка в Apple Developer Portal
-
Создание App ID:
- Перейдите в Certificates, Identifiers & Profiles
- Нажмите + → Выберите App IDs
- Зарегистрируйте приложение с bundle ID (например,
com.sonoratek.ring)
- Включите возможность Sign in with Apple
-
Создание Service ID:
- В разделе Identifiers → Нажмите + → Выберите Services IDs
- Создайте service ID (например,
com.sonoratek.ring-auth)
- Включите Sign in with Apple
- Настройте Return URLs (URL-адреса обратного вызова вашего приложения)
-
Генерация приватного ключа:
- Перейдите в Keys → Нажмите +
- Назовите ключ (например, "Auth Key for Ring Platform")
- Включите Sign in with Apple
- Выберите ваш App ID
- Скачайте файл приватного ключа
.p8 (храните в безопасности!)
Конфигурация окружения
Добавьте эти переменные в ваш .env.local:
Конфигурация входа через Apple
Генерация JWT
Apple требует JWT, подписанный вашим приватным ключом. Используйте этот скрипт Node.js:
Конфигурация Auth.js v5
Вход через Apple автоматически настраивается в вашем auth.config.ts:
Использование в компонентах
Особенности пользовательского опыта
- Одно касание аутентификации на устройствах Apple
- Ориентированность на приватность - Нет сбора email без согласия пользователя
- Безопасный обмен токенами - Валидация на стороне сервера
- Связывание аккаунтов - Подключение к существующим аккаунтам
- Кросс-платформенная поддержка - Работает на веб и мобильных
Меры безопасности
- Защита приватного ключа - Никогда не коммитьте файлы
.p8 в систему контроля версий
- Истечение JWT - Перегенерируйте токены каждые 6 месяцев
- Изоляция окружений - Используйте разные ключи для dev/staging/production
- Аудит логирования - Отслеживайте события аутентификации
- Ограничение частоты запросов - Защита от злоупотреблений
Устранение неполадок
Распространенные проблемы:
- "Invalid client" ошибка: Проверьте, что
AUTH_APPLE_ID соответствует вашему Service ID
- "Invalid JWT" ошибка: Проверьте генерацию JWT и срок действия
- "Domain verification failed": Убедитесь, что return URLs правильно настроены
- "Key not found" ошибка: Проверьте доступность и корректность приватного ключа
Советы по отладке:
- Проверьте логи сервера для детальных сообщений об ошибках
- Проверьте структуру полезной нагрузки JWT и подпись
- Тестируйте с инструментами разработчика Apple
- Убедитесь в правильной верификации домена в Apple Developer portal
Crypto Wallets
- MetaMask - Ethereum wallet authentication
- WalletConnect - Multi-wallet support
- Coinbase Wallet - Mainstream crypto wallet
- Trust Wallet - Mobile-first wallet integration
Implementation
Authentication Setup
Role-Based Access
// Check user role
Документация в разработке
Полная документация по аутентификации дополняется.
Authentication System
Auth.js v5 multi-provider authentication with magic links, OAuth providers, crypto wallets, and GDPR compliance.
Модель защиты v1.6.0
| Слой | Роль |
|---|
proxy.ts | Перезапись локали + optimistic redirect на ROUTES.LOGIN(locale) |
(authenticated)/[locale]/layout.tsx | await auth() — каноничный gate сессии |
(admin)/[locale]/layout.tsx | Проверка роли (admin/superadmin) |
| API routes | auth() в каждом handler |
OAuth: /api/auth/* исключено из intl middleware. См. Proxy и intl.
Overview
Ring Platform uses Auth.js v5 to provide seamless authentication across multiple providers while maintaining security and user privacy.
Authentication Providers
Magic Links
- Passwordless Authentication - Email-based secure login
- One-click Access - No password required
- Secure Tokens - Time-limited access tokens
- GDPR Compliant - Privacy-first approach
OAuth Providers
- Google - Primary OAuth provider for web and mobile
- Apple - iOS/macOS native integration with Sign in with Apple
- GitHub - Developer-focused authentication
- Discord - Community platform integration
Интеграция входа через Apple
Платформа Ring поддерживает бесшовную интеграцию Sign in with Apple с использованием Auth.js v5.
Необходимые условия
Перед настройкой входа через Apple убедитесь, что у вас есть:
- Аккаунт разработчика Apple - Платный аккаунт разработчика ($99/год)
- App ID - Зарегистрированный идентификатор приложения (например,
com.yourcompany.yourapp)
- Service ID - Для веб-аутентификации (например,
com.yourcompany.auth)
- Приватный ключ - Сгенерированный в портале разработчика Apple
- Team ID - Из вашего аккаунта разработчика Apple
Настройка в Apple Developer Portal
-
Создание App ID:
- Перейдите в Certificates, Identifiers & Profiles
- Нажмите + → Выберите App IDs
- Зарегистрируйте приложение с bundle ID (например,
com.sonoratek.ring)
- Включите возможность Sign in with Apple
-
Создание Service ID:
- В разделе Identifiers → Нажмите + → Выберите Services IDs
- Создайте service ID (например,
com.sonoratek.ring-auth)
- Включите Sign in with Apple
- Настройте Return URLs (URL-адреса обратного вызова вашего приложения)
-
Генерация приватного ключа:
- Перейдите в Keys → Нажмите +
- Назовите ключ (например, "Auth Key for Ring Platform")
- Включите Sign in with Apple
- Выберите ваш App ID
- Скачайте файл приватного ключа
.p8 (храните в безопасности!)
Конфигурация окружения
Добавьте эти переменные в ваш .env.local:
Конфигурация входа через Apple
Генерация JWT
Apple требует JWT, подписанный вашим приватным ключом. Используйте этот скрипт Node.js:
Конфигурация Auth.js v5
Вход через Apple автоматически настраивается в вашем auth.config.ts:
Использование в компонентах
Особенности пользовательского опыта
- Одно касание аутентификации на устройствах Apple
- Ориентированность на приватность - Нет сбора email без согласия пользователя
- Безопасный обмен токенами - Валидация на стороне сервера
- Связывание аккаунтов - Подключение к существующим аккаунтам
- Кросс-платформенная поддержка - Работает на веб и мобильных
Меры безопасности
- Защита приватного ключа - Никогда не коммитьте файлы
.p8 в систему контроля версий
- Истечение JWT - Перегенерируйте токены каждые 6 месяцев
- Изоляция окружений - Используйте разные ключи для dev/staging/production
- Аудит логирования - Отслеживайте события аутентификации
- Ограничение частоты запросов - Защита от злоупотреблений
Устранение неполадок
Распространенные проблемы:
- "Invalid client" ошибка: Проверьте, что
AUTH_APPLE_ID соответствует вашему Service ID
- "Invalid JWT" ошибка: Проверьте генерацию JWT и срок действия
- "Domain verification failed": Убедитесь, что return URLs правильно настроены
- "Key not found" ошибка: Проверьте доступность и корректность приватного ключа
Советы по отладке:
- Проверьте логи сервера для детальных сообщений об ошибках
- Проверьте структуру полезной нагрузки JWT и подпись
- Тестируйте с инструментами разработчика Apple
- Убедитесь в правильной верификации домена в Apple Developer portal
Crypto Wallets
- MetaMask - Ethereum wallet authentication
- WalletConnect - Multi-wallet support
- Coinbase Wallet - Mainstream crypto wallet
- Trust Wallet - Mobile-first wallet integration
Implementation
Authentication Setup
Role-Based Access
// Check user role
Документация в разработке
Полная документация по аутентификации дополняется.