AuthCubit class

A base auth cubit that manages authentication state.

Handles token persistence, auth state transitions, and listens for auth failure events via INotifierService (e.g. from AuthInterceptor).

This cubit does NOT handle login — that's project-specific. Instead, call onAuthenticated after a successful login:

// In your login cubit or wherever login happens:
final tokens = await api.login(email, password);
authCubit.onAuthenticated(tokens);

To listen for auth failures from the network layer:

AuthCubit(
  tokenStorage: tokenStorage,
  notifier: notifierService,
  authFailureKey: 'auth_failure', // must match what AuthInterceptor notifies
);

Constructors

AuthCubit({required IAuthTokenStorage tokenStorage, INotifierService? notifier, String authFailureKey = 'auth_failure'})

Properties

hashCode int
The hash code for this object.
no setterinherited
isClosed bool
Whether the bloc is closed.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
state AuthState
The current state.
no setterinherited
stream Stream<AuthState>
The current stream of states.
no setterinherited

Methods

addError(Object error, [StackTrace? stackTrace]) → void
Reports an error which triggers onError with an optional StackTrace.
inherited
checkAuth() Future<void>
Checks stored tokens and emits Authenticated or Unauthenticated. Call this on app startup.
close() Future<void>
Closes the instance. This method should be called when the instance is no longer needed. Once close is called, the instance can no longer be used.
emit(AuthState state) → void
Updates the state to the provided state. emit does nothing if the state being emitted is equal to the current state.
inherited
logout() Future<void>
Clears tokens and emits Unauthenticated.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onAuthenticated(TokenPair tokens) Future<void>
Saves the token pair and emits Authenticated. Call this after a successful login.
onChange(Change<AuthState> change) → void
Called whenever a change occurs with the given change. A change occurs when a new state is emitted. onChange is called before the state of the cubit is updated. onChange is a great spot to add logging/analytics for a specific cubit.
inherited
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
inherited
toString() String
A string representation of this object.
inherited

Operators

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