mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2025-07-22 16:37:43 +00:00

* chore: save cloud ofnig * chore: fix .a link warnings * chore: add cloud test runner * refactor: test folder * ci: add test * ci: add test * ci: fix * ci: fix
88 lines
3.1 KiB
Dart
88 lines
3.1 KiB
Dart
import 'package:appflowy_backend/protobuf/flowy-error/errors.pb.dart';
|
|
import 'package:appflowy_backend/protobuf/flowy-user/user_profile.pbserver.dart';
|
|
import 'package:dartz/dartz.dart';
|
|
|
|
class AuthServiceMapKeys {
|
|
const AuthServiceMapKeys._();
|
|
|
|
// for supabase auth use only.
|
|
static const String uuid = 'uuid';
|
|
static const String email = 'email';
|
|
static const String deviceId = 'device_id';
|
|
static const String signInURL = 'sign_in_url';
|
|
}
|
|
|
|
/// `AuthService` is an abstract class that defines methods related to user authentication.
|
|
///
|
|
/// This service provides various methods for user sign-in, sign-up,
|
|
/// OAuth-based registration, and other related functionalities.
|
|
abstract class AuthService {
|
|
/// Authenticates a user with their email and password.
|
|
///
|
|
/// - `email`: The email address of the user.
|
|
/// - `password`: The password of the user.
|
|
/// - `params`: Additional parameters for authentication (optional).
|
|
///
|
|
/// Returns [UserProfilePB] if the user is authenticated, otherwise returns [FlowyError].
|
|
|
|
Future<Either<FlowyError, UserProfilePB>> signInWithEmailPassword({
|
|
required String email,
|
|
required String password,
|
|
Map<String, String> params,
|
|
});
|
|
|
|
/// Registers a new user with their name, email, and password.
|
|
///
|
|
/// - `name`: The name of the user.
|
|
/// - `email`: The email address of the user.
|
|
/// - `password`: The password of the user.
|
|
/// - `params`: Additional parameters for registration (optional).
|
|
///
|
|
/// Returns [UserProfilePB] if the user is authenticated, otherwise returns [FlowyError].
|
|
Future<Either<FlowyError, UserProfilePB>> signUp({
|
|
required String name,
|
|
required String email,
|
|
required String password,
|
|
Map<String, String> params,
|
|
});
|
|
|
|
/// Registers a new user with an OAuth platform.
|
|
///
|
|
/// - `platform`: The OAuth platform name.
|
|
/// - `params`: Additional parameters for OAuth registration (optional).
|
|
///
|
|
/// Returns [UserProfilePB] if the user is authenticated, otherwise returns [FlowyError].
|
|
Future<Either<FlowyError, UserProfilePB>> signUpWithOAuth({
|
|
required String platform,
|
|
Map<String, String> params,
|
|
});
|
|
|
|
/// Registers a user as a guest.
|
|
///
|
|
/// - `params`: Additional parameters for guest registration (optional).
|
|
///
|
|
/// Returns a default [UserProfilePB].
|
|
Future<Either<FlowyError, UserProfilePB>> signUpAsGuest({
|
|
Map<String, String> params,
|
|
});
|
|
|
|
/// Authenticates a user with a magic link sent to their email.
|
|
///
|
|
/// - `email`: The email address of the user.
|
|
/// - `params`: Additional parameters for authentication with magic link (optional).
|
|
///
|
|
/// Returns [UserProfilePB] if the user is authenticated, otherwise returns [FlowyError].
|
|
Future<Either<FlowyError, UserProfilePB>> signInWithMagicLink({
|
|
required String email,
|
|
Map<String, String> params,
|
|
});
|
|
|
|
/// Signs out the currently authenticated user.
|
|
Future<void> signOut();
|
|
|
|
/// Retrieves the currently authenticated user's profile.
|
|
///
|
|
/// Returns [UserProfilePB] if the user has signed in, otherwise returns [FlowyError].
|
|
Future<Either<FlowyError, UserProfilePB>> getUser();
|
|
}
|