firebase-auth-basicsаутентификация Firebase
Настройка и реализация Firebase Authentication: вход пользователей, управление аккаунтами, провайдеры OAuth для разных типов приложений.
Установка
npx -y skills add firebase/agent-skills --skill firebase-auth-basics --agent claude-codeОсновы Firebase Authentication
Предварительные требования
- Firebase-проект: создаётся командой
npx -y firebase-tools@latest projects:create(см.firebase-basics). - Firebase CLI: установлен и выполнен вход (см.
firebase-basics).
Основные концепции
Firebase Authentication предоставляет серверные сервисы, удобные SDK и готовые библиотеки UI для аутентификации пользователей в вашем приложении.
Пользователи
Пользователь — это сущность, которая может войти в ваше приложение. Каждый пользователь идентифицируется уникальным идентификатором (uid), гарантированно уникальным среди всех провайдеров. Свойства пользователя:
uid— уникальный идентификатор.email— адрес электронной почты (если доступен).displayName— отображаемое имя (если доступно).photoURL— URL фотографии пользователя (если доступен).emailVerified— булево значение, указывающее, подтверждён ли email.
Провайдеры идентификации
Firebase Auth поддерживает несколько способов входа:
- Email/Password — базовая аутентификация по email и паролю.
- Федеративные провайдеры: Google, Facebook, Twitter, GitHub, Microsoft, Apple и другие.
- Номер телефона — аутентификация по SMS.
- Анонимно — временные гостевые аккаунты, которые впоследствии можно привязать к постоянным.
- Custom Auth — интеграция с вашей существующей системой аутентификации.
Google Sign In рекомендуется как надёжный и безопасный провайдер по умолчанию.
Токены
При входе пользователь получает ID Token (JWT). Этот токен используется для идентификации при обращении к сервисам Firebase (Realtime Database, Cloud Storage, Firestore) или собственному бэкенду.
- ID Token — краткосрочный (1 час), подтверждает личность.
- Refresh Token — долгосрочный, используется для получения новых ID токенов.
Рабочий процесс
1. Настройка провайдеров
Вариант 1: Включение аутентификации через CLI
Через CLI можно включить только Google Sign In, анонимную аутентификацию и email/password. Для остальных провайдеров используйте консоль Firebase.
Настройте Firebase Authentication в firebase.json, добавив блок auth:
{
"auth": {
"providers": {
"anonymous": true,
"emailPassword": true,
"googleSignIn": {
"oAuthBrandDisplayName": "Your Brand Name",
"supportEmail": "support@example.com",
"authorizedRedirectUris": ["https://example.com", "http://localhost"]
}
}
}
}
ВАЖНО: После настройки firebase.json необходимо задеплоить конфигурацию аутентификации в бэкенд Firebase, чтобы изменения вступили в силу. Выполните:
npx -y firebase-tools@latest deploy --only auth
Вариант 2: Включение аутентификации в консоли
- Перейдите по адресу
https://console.firebase.google.com/project/_/authentication/providers. - Выберите ваш проект.
- Включите нужные провайдеры входа (например, Email/Password, Google).
2. Настройка клиента
- Web: см.
references/client_sdk_web.md. - Flutter: см.
references/flutter_setup.md. - Android (Kotlin): см.
references/client_sdk_android.md.
3. Правила безопасности
Защитите свои данные с помощью request.auth в правилах Firestore/Storage. Подробнее: references/security_rules.md.
