BetterAuthClient class

The main Better Auth client class for Flutter applications.

This client provides a type-safe interface to interact with a Better Auth backend, supporting authentication, session management, and OAuth flows.

Basic Usage

final authClient = BetterAuthClient(
  baseUrl: String.fromEnvironment('BETTER_AUTH_URL'),
);

final result = await authClient.signIn.email(
  email: 'user@example.com',
  password: 'password123',
);

Reactive Session Management

The client provides a ValueNotifier for reactive session updates:

ValueListenableBuilder<Session?>(
  valueListenable: authClient.sessionNotifier,
  builder: (context, session, child) {
    if (session == null) return LoginPage();
    return HomePage(session: session);
  },
);

See also:

Constructors

BetterAuthClient({required String baseUrl, StorageInterface? storage, ClientOptions? options})
Creates a new BetterAuthClient instance.
BetterAuthClient.internal({required Dio dio, required String baseUrl, required StorageInterface storage})
Internal constructor for testing purposes.

Properties

account ↔ AccountModule
Module for account operations.
latefinal
baseUrl → String
The base URL for API requests.
final
currentSession → Session?
Gets the current session synchronously.
no setter
hashCode → int
The hash code for this object.
no setterinherited
oauth ↔ OAuthModule
Module for OAuth operations.
latefinal
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
session ↔ SessionModule
Module for session management.
latefinal
sessionNotifier → ValueNotifier<Session?>
Provides a ValueNotifier for reactive session updates.
no setter
signIn ↔ SignInModule
Module for sign-in operations.
latefinal
signUp ↔ SignUpModule
Module for sign-up operations.
latefinal

Methods

dispose() → void
Disposes of resources used by the client.
getSession() → Future<AuthResponse<Session>>
Fetches the current session from the server.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
signOut({Map<String, String>? fetchOptions}) → Future<AuthResponse<void>>
Signs out the current user.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited