📱 Регистрация по телефону в Supabase (OTP)
Инструкция по настройке беспарольного входа по номеру телефона (One-Time Password) в связке Supabase + FlutterFlow.
1. Настройка на стороне Supabase
- Перейдите в Authentication → Providers → Phone.
- Включите провайдера и выберите SMS-провайдера (например, Twilio или MessageBird) для отправки кодов.
- Убедитесь, что опция “Confirm Phone” включена.
2. Реализация во FlutterFlow (Custom Actions)
Для работы с OTP потребуются два кастомных действия: отправка кода и его проверка.
Шаг А: Запрос кода (getPhoneOtp)
Аргументы: phone (String).
import 'package:supabase_flutter/supabase_flutter.dart';
Future getPhoneOtp(String phone) async {
final supabase = Supabase.instance.client;
await supabase.auth.signInWithOtp(
phone: phone,
shouldCreateUser: true, // Автоматически создает пользователя, если его нет
);
}Шаг Б: Проверка кода (verifyPhoneOtp)
Аргументы: phone (String), token (String).
import 'package:supabase_flutter/supabase_flutter.dart';
Future<bool> verifyPhoneOtp(String phone, String? token) async {
final supabase = Supabase.instance.client;
try {
final AuthResponse res = await supabase.auth.verifyOTP(
type: OtpType.sms,
token: token ?? "",
phone: phone,
);
return res.session != null;
} on AuthException catch (e) {
print('Auth exception: ${e.message}');
return false;
} catch (error) {
print('Unexpected error: $error');
return false;
}
}🔗 Видео-инструкции
- Supabase Magic Link во FlutterFlow — Беспарольная аутентификация через email (смежная концепция).
- Подробный разбор OTP (YouTube)
Автор контента: @flutterzer0