Вход по JWT-токену
Вход по JWT позволяет пользоваться сервисами Firebase — базой и push-уведомлениями — с учётной записью, которую завёл ваш собственный сервер.

Порядок такой: приложение отправляет логин и пароль на ваш сервер, тот проверяет их, создаёт учётную запись, выпускает JWT-токен и возвращает его приложению. С этим токеном приложение входит в Firebase.
Подробности — в документации Firebase про пользовательские токены.
Как это настроить
Соберём пример входа по JWT-токену. Готовый результат:
- Пройдено подключение Firebase.
- Пройдена первичная настройка аутентификации.
Пять шагов:
- Настроить API входа
- Собрать страницу входа
- Добавить действие входа
- Добавить выход
- Проверить создание пользователя
1. API входа
На своём сервере создайте эндпоинт, который принимает почту или логин с паролем, проверяет их и возвращает JWT-токен.
Сам токен выпускают через Firebase Admin SDK или стороннюю библиотеку JWT — подробности в документации Firebase.
Как вариант, подключите аутентификацию Supabase и берите JWT-токен, который она выдаёт после входа.
Эндпоинт должен выглядеть примерно так.
API входа на вашем сервере
POST /login
Тело запроса
| Поле | Тип | Описание |
|---|---|---|
| email* | String | почта или логин |
| password* | String | пароль |
Ответ 200: OK
{
"user": {
"id": 1,
"role_id": 1,
"name": "james",
"email": "james@yopmail.com"
},
"token_type": "Bearer",
"expires_in": 3600,
"jwt_token": "eyJraWQiOiItSE5TUmtwMWdXcG9QcC1wWVBmU1U4UW1fdng4Q0VwdzRSdTZTQU9WLThRIiwiYWxnIjoiUlMyNTYifQ...",
"refresh_token": "dlIOQHHAmweyOrVkDlpNYpi1XM-DwX5Cgx70LoKIbTI"
}
Обычно приложение должно открываться сразу после регистрации. Значит, JWT-токен нужно выпускать и возвращать не только при входе, но и при успешном создании аккаунта.
Хотите попробовать до того, как эндпоинт готов, — сгенерируйте токен локально.
2. Страница входа
Добавьте страницу из шаблонов: вкладка Auth, шаблон Authenticate Solo Alt. Лишние кнопки входа через соцсети уберите.

3. Действие входа
Вход состоит из двух шагов: вызов API вашего сервера, а затем передача полученного токена в действие Log In.
- Выберите виджет — например, кнопку Sign In.
- В панели свойств справа откройте Actions и нажмите Open — откроется Action Flow Editor.
- Добавьте вызов API входа и задайте Action Output Variable Name — из неё потом достанете токен.
- В ветке TRUE нажмите + и выберите Add Action.
- Найдите и выберите Log In (раздел Firebase Authentication).
- В Auth Provider укажите JWT token.
- Передайте сам токен:
- Нажмите UNSET и выберите Action Outputs → имя переменной, заданное на шаге 3.
- В API Response Options выберите JSON Body, в Available Options — JSON Path.
- Укажите путь к токену в ответе — например,
$.token— и нажмите Confirm.
- По желанию добавьте Show SnackBar с сообщением об успехе.
- По желанию добавьте такое же сообщение об ошибке в ветку FALSE.
4. Добавить выход
Выход из аккаунта — действие Logout.
5. Проверить создание пользователя
Записи новых пользователей появятся в Firebase project > Authentication > Users. Обратите внимание: идентификатор, который выдал ваш сервер, попадает в колонку User UID.
Локальная генерация токена
Иногда собрать и проверить вход хочется до того, как готов серверный API. Токен можно выпустить локально и передать его в действие входа.
Это только для проверки. В рабочем приложении токен выпускает сервер.
Как сделать это на Node.js:
- В консоли Firebase откройте Project Settings → Service accounts.
- Нажмите Generate new private key, затем Generate key и сохраните файл
.jsonв отдельную папку. - Установите Node.js.
- Откройте терминал в папке с файлом
.jsonи выполнитеnpm install firebase-admin. - В той же папке создайте файл
index.js:
const admin = require('firebase-admin');
const ServiceAccount = require('./[YOUR_SERVICE_ACCOUNT_JSON_FILE_NAME].json');
admin.initializeApp({
credential: admin.credential.cert(ServiceAccount)
});
const uid= 'userid1'; // этот идентификатор сохранится в Firebase
admin.auth().createCustomToken(uid)
.then((customToken) => {
console.log(customToken);
})
.catch((error) => {
console.log('Error creating custom token:', error);
});
- Выполните
node index.js— токен появится в консоли. - Скопируйте его, вернитесь во FlutterFlow и сохраните в переменную состояния приложения типа String.
- Откройте действие входа по JWT, нажмите UNSET и выберите App State → имя переменной с токеном.
Доступ к базе Firebase
После входа по токену доступен объект Authenticated User с данными вошедшего пользователя — в том числе User Reference, ссылка на его документ. Она нужна при записи и чтении документов Firestore.
Например, так список дел фильтруется по автору:

Push-уведомления
Ссылка на пользователя из Authenticated User пригодится и для уведомлений. Если она сохранена в документах Firestore, её подставляют в Single Recipient или Multiple Recipients при выборе Audience в действии Trigger Push Notification:

Подробнее — в разделе про push-уведомления.