Updated auth interface example

Signed-off-by: Hans Kokx <hans.d.kokx@gmail.com>
This commit is contained in:
2024-09-20 15:37:36 +02:00
parent 7962fe4739
commit 2219163a05
+17 -9
View File
@@ -3,6 +3,8 @@ import "package:amplify_flutter/amplify_flutter.dart";
import "package:arcane_framework/arcane_framework.dart";
import "package:flutter/widgets.dart";
typedef LoginInput = ({String email, String password});
class AmplifyInterface implements ArcaneAuthInterface {
AmplifyInterface._internal();
@@ -56,20 +58,19 @@ class AmplifyInterface implements ArcaneAuthInterface {
}
@override
Future<Result<void, String>> login<T>({
T? input,
Future<Result<void, String>> login<LoginInput>({
LoginInput? input,
Future<void> Function()? onLoggedIn,
}) =>
throw UnimplementedError();
@override
Future<Result<void, String>> loginWithEmailAndPassword({
required String email,
required String password,
}) async {
final bool alreadyLoggedIn = await isSignedIn;
if (alreadyLoggedIn) return Result.ok(null);
if (input == null) return Result.error("No input provided");
final credentials = input as ({String email, String password});
final String email = credentials.email;
final String password = credentials.password;
try {
final CognitoSignInResult result = await _cognito.signIn(
@@ -84,6 +85,13 @@ class AmplifyInterface implements ArcaneAuthInterface {
}
}
@override
Future<Result<void, String>> loginWithEmailAndPassword({
required String email,
required String password,
}) async =>
throw UnimplementedError();
Future<Result<void, String>> _handleSignInResult(
SignInResult result,
String email,