An in-memory implementation of the `AuthClient` interface for the Flutter News App Toolkit.
coverage Live Docs: View Main Project: Browse
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
AuthInmemoryClass: A concrete in-memory implementation of theAuthClientinterface, providing a standardized way to simulate authentication.- Simulated Authentication Flows: Implements
requestSignInCode,verifySignInCode,signInAnonymously, andsignOutto simulate various authentication processes. - Reactive State Changes: Provides
authStateChanges(a stream that emits the current authenticatedUserornullon state changes) andgetCurrentUserto retrieve the current user.
- Privileged Flow Simulation: Supports an
isDashboardLoginflag inrequestSignInCodeandverifySignInCodeto simulate privileged flows, allowing testing of admin-specific authentication logic (e.g., onlyadmin@example.comis allowed). - Token Retrieval: Includes a
currentTokengetter to retrieve the simulated authentication token for inspection during development.
HttpExceptionPropagation: Throws standardHttpExceptionsubtypes (e.g.,UnauthorizedException,NotFoundException,AuthenticationException,InvalidInputException) fromcoreon 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.