This auth_inmemory
package provides an in-memory implementation of the AuthClient
interface within the Flutter News App Full Source Code Toolkit. It offers a mock authentication client that operates entirely on in-memory data, making it suitable for demonstration purposes, local development, and testing without requiring a live backend. This package simulates various authentication flows, ensuring consistent behavior and robust error handling based on the auth_client
contract.
This package offers a comprehensive set of features for managing authentication operations in a simulated environment.
🧱 Core Functionality
AuthInmemory
Class: A concrete in-memory implementation of theAuthClient
interface, providing a standardized way to simulate authentication.- Simulated Authentication Flows: Implements
requestSignInCode
,verifySignInCode
,signInAnonymously
, andsignOut
to simulate various authentication processes. - Reactive State Changes: Provides
authStateChanges
(a stream that emits the current authenticatedUser
ornull
on state changes) andgetCurrentUser
to retrieve the current user.
- Privileged Flow Simulation: Supports an
isDashboardLogin
flag inrequestSignInCode
andverifySignInCode
to simulate privileged flows, allowing testing of admin-specific authentication logic (e.g., only[email protected]
is allowed). - Token Retrieval: Includes a
currentToken
getter to retrieve the simulated authentication token for inspection during development.
HttpException
Propagation: Throws standardHttpException
subtypes (e.g.,UnauthorizedException
,NotFoundException
,AuthenticationException
,InvalidInputException
) fromcore
on simulated failures, ensuring consistent error handling in a testing context.
💡 Your Advantage: This package provides a reliable, in-memory authentication client that simplifies testing and development of authentication-related features. It eliminates the need for external backend dependencies during development, offering immediate feedback and consistent behavior for your authentication logic, especially for complex scenarios like privileged logins.
This auth_inmemory
package is an integral part of the Flutter News App Full Source Code Toolkit. For comprehensive details regarding licensing, including trial and commercial options for the entire toolkit, please refer to the main toolkit organization page.