flutter_login_widget/lib/backend/login_repository.dart

35 lines
1.1 KiB
Dart
Raw Normal View History

2022-09-20 16:32:46 +02:00
import 'dart:async';
2022-09-21 14:58:46 +02:00
import 'package:flutter/material.dart';
2022-09-20 16:32:46 +02:00
import '../login_config.dart';
2022-09-20 16:42:09 +02:00
import '../model/login_confirmation_result.dart';
import '../model/login_user.dart';
2022-09-20 16:32:46 +02:00
2022-09-21 14:58:46 +02:00
abstract class LoginRepository {
2022-09-20 16:32:46 +02:00
String loginError = '';
String getLoginError() => loginError;
Future<bool> login(String username, String password);
2022-09-20 16:42:09 +02:00
Future<LoginUser?> signInWithSocial(SocialLoginBundle bundle);
2022-09-20 16:32:46 +02:00
Future sendLoginEmail(String input);
Future<void> trySignInWithPhoneNumber({
required String phoneNumber,
void Function(
String verificationId,
int? resendToken,
2022-09-20 16:42:09 +02:00
LoginConfirmationResult? resultWeb,
2022-09-20 16:32:46 +02:00
)?
onCodeSent,
void Function(String errorCode)? onVerificationFailed,
2022-09-20 16:42:09 +02:00
void Function(LoginUser? user)? onAutoLogin,
2022-09-20 16:32:46 +02:00
});
2022-09-20 16:42:09 +02:00
Future<LoginUser?> signInWithSMSCode(
2022-09-20 16:32:46 +02:00
String verificationId,
String smsCode,
String phoneNumber, {
2022-09-20 16:42:09 +02:00
LoginConfirmationResult? resultWeb,
2022-09-20 16:32:46 +02:00
});
Future<bool> forgotPassword(String email);
2022-09-20 16:42:09 +02:00
Future<bool> isRegistrationRequired(LoginUser user);
2022-09-21 14:58:46 +02:00
Future<void> reLogin({required VoidCallback onLoggedIn});
2022-09-20 16:42:09 +02:00
Future<LoginUser?> signInAnonymous();
2022-09-20 16:32:46 +02:00
}