Собственная аутентификация

Собственная аутентификация нужна, когда пользователей проверяет ваш бэкенд, а FlutterFlow отвечает только за хранение данных сессии — токенов и профиля.

совет
Что почитать заранее

Разберитесь с токенами — без этого дальнейшее будет выглядеть набором магических полей.

Как это настроить

Соберём такой пример:

Порядок работы:

  1. Включить собственную аутентификацию
  2. Собрать страницы
  3. Проверить пользователя через API
  4. Сохранить данные сессии
  5. Обращаться к данным пользователя
  6. Обновлять токен
  7. Выход

1. Включить собственную аутентификацию

  1. Откройте Settings and Integrations > App Settings > Authentication.
  2. Включите Enable Authentication и в Authentication Type выберите Custom.
  3. Задайте стартовые страницы — куда попадает гость и куда вошедший пользователь.
  4. Опция Persist Auth Sessions включена по умолчанию: пользователь остаётся авторизованным, пока сам не выйдет, и при перезапуске приложение сразу открывает домашнюю страницу.
  5. После успешной проверки бэкенд обычно возвращает токен доступа, токен обновления и данные пользователя. Чтобы всё это сохранялось, включите Associate User Data Type и в User Data Type укажите собственный тип данных. Его структура должна повторять структуру JSON-ответа вашего API — как минимум содержать токен доступа.

2. Собрать страницы

Нужны страницы регистрации и входа. Быстрее всего взять готовый шаблон и поправить его под себя:

Страница входа из шаблона

Если собираете страницу с нуля — см. построение раскладки.

3. Проверить пользователя через API

На кнопки страниц вешаются вызовы API вашего бэкенда. В примере используется тестовый API dummyjson.

4. Сохранить данные сессии

Данные сохраняет действие Log in:

  1. В ветке TRUE вызова API добавьте действие Log in (раздел Backend/Database > Custom Authentication).
  2. В блоке User Auth Properties заполните Authentication Token, Refresh Token, Token Expiry Time и User UID. Без Authentication Token опция Persist Auth Sessions работать не будет.
  3. В Set User Data положите ответ предыдущего вызова API в собственный тип данных. Как это делается — в разделе из JSON в тип данных.

5. Обращаться к данным пользователя

После входа данные доступны через меню Set from Variable > Authenticated User — дальше выбираете Auth Properties или User Data Fields.

6. Обновлять токен

Токен доступа живёт недолго, и по истечении срока его надо менять. Для этого есть действие Update Authenticated User:

  1. Получили код 401 (пользователь не авторизован) — сделайте вызов API, который выдаёт новый токен доступа.
  2. После получения токена добавьте действие Update Authenticated User.
  3. В блоке User Auth Properties запишите новый Authentication Token.

Действие Update Authenticated User

7. Выход

Выход из аккаунта — действие Log Out.

Действие Log Out

перевод официальной документации FlutterFlow

обновлено

ESC