AuthenticationBloc class
Manages user authentication flows and state transitions.
This BLoC handles all authentication operations including:
- Multiple sign-in methods (Google, Apple, Microsoft, password, biometrics)
- Multi-tenant application support with tenant selection
- Session persistence and restoration
- User profile updates and notification preferences
The bloc integrates with OAuth providers and manages the complete authentication lifecycle from initial login through tenant selection to logout.
Constructors
Properties
- authRepo → PortalAuthenticationRepository
-
Repository for authentication operations
final
- config ↔ Config
-
Azure AD OAuth configuration
getter/setter pair
- googleSignIn → GoogleSignIn
-
Google Sign-In client for OAuth authentication
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- isClosed → bool
-
Whether the bloc is closed.
no setterinherited
- oauth ↔ AadOAuth
-
Azure AD OAuth client instance
latefinal
- profileRepo → PortalProfileRepository
-
Repository for user profile operations
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → AuthenticationState
-
The current state.
no setterinherited
-
stream
→ Stream<
AuthenticationState> -
The current stream of states.
no setterinherited
Methods
-
add(
AuthenticationEvent event) → void -
Notifies the
Blocof a neweventwhich triggers all correspondingEventHandlerinstances.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggersonErrorwith an optional StackTrace.inherited -
close(
) → Future< void> -
Closes the
eventandstateStreams. This method should be called when aBlocis no longer needed. Oncecloseis called,eventsthat areadded will not be processed. In addition, ifcloseis called whileeventsare still being processed, theBlocwill finish processing the pendingevents.inherited -
configureAzureAD(
String redirectUri) → AadOAuth - Configures Azure AD OAuth for Microsoft sign-in.
-
emit(
AuthenticationState state) → void -
emitis only for internal use and should never be called directly outside of tests. TheEmitterinstance provided to eachEventHandlershould be used instead.inherited -
handleInitialize(
) → Future< void> - Initializes authentication by checking for saved sessions.
-
handleLoginWithTenants(
List< Tenant> tenants) → Future<void> - Processes tenant list after successful authentication.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
on<
E extends Event> (EventHandler< E, AuthenticationState> handler, {EventTransformer<E> ? transformer}) → void -
Register event handler for an event of type
E. There should only ever be one event handler per event typeE.inherited -
onChange(
Change< AuthenticationState> change) → void -
Called whenever a
changeoccurs with the givenchange. Achangeoccurs when a newstateis emitted.onChangeis called before thestateof thecubitis updated.onChangeis a great spot to add logging/analytics for a specificcubit.inherited -
onDone(
AuthenticationEvent event, [Object? error, StackTrace? stackTrace]) → void -
Called whenever an
eventhandler for a specificBlochas completed. This may include anerrorandstackTraceif an uncaught exception occurred within the event handler.inherited -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifiesBlocObserver.onError.inherited -
onEvent(
AuthenticationEvent event) → void -
Called whenever an
eventisadded to theBloc. A great spot to add logging/analytics at the individualBloclevel.inherited -
onTransition(
Transition< AuthenticationEvent, AuthenticationState> transition) → void -
Called whenever a
transitionoccurs with the giventransition. Atransitionoccurs when a neweventis added and a new state isemittedfrom a correspondingEventHandler.inherited -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited