3.9 KiB
3.9 KiB
IIdentityService
- File ID: file:1ud0jop:iidentityservice-cs
- Path: NexusReader.Application/Abstractions/Services/IIdentityService.cs
- Role: service
- Layer: application
Purpose
Defines the identity/authentication abstraction for the Application layer: registration, login/logout, profile retrieval, token refresh, and an event for state invalidation.
Key Details
This file only declares the IIdentityService interface and an OnStateInvalidated event; concrete implementations elsewhere will perform orchestration, external calls, persistence, and error handling.
Symbols
- OnStateInvalidated(): Event triggered when identity/authentication state becomes invalid and consumers should react (e.g., clear state or re-authenticate).
- RegisterAsync(): Registers a new user account using email and password and returns a success/failure Result.
- LoginAsync(): Authenticates a user with credentials and optional persistence (rememberMe) and returns a Result.
- LogoutAsync(): Logs out the current user and returns a Result indicating success/failure.
- GetProfileAsync(): Retrieves the current user's profile wrapped in a Result with UserProfileDto on success.
- RefreshTokenAsync(): Requests a token refresh for the current authentication session and returns a Result indicating success/failure.
- IIdentityService: Service contract defining identity/authentication operations and an event for invalidation.
Dependencies
- imports NexusReader.Application/DTOs/User/UserProfileDto.cs
Calls
- No resolved calls.
Unresolved References
- dependency-target: FluentResults (external package)
Coverage
- Symbols: 7
- Executable symbols: 6
- Executable symbols with control flow: 6
- Grounded edges: 8
- Unresolved references: 1
- Control-flow fragments: 6
- Unresolved jumps: 0
- Unsupported constructs: 0
- Control-flow coverage: 100%
- Required diagrams: 2
- Generated diagrams: 2
Control Flow Fragments
- OnStateInvalidated: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- RegisterAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- LoginAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- LogoutAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- GetProfileAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
- RefreshTokenAsync: 3 nodes, 2 edges, 0 jumps, 0 unsupported constructs
Diagrams
IIdentityService Neighborhood
flowchart LR
file_1ud0jop_iidentityservice_cs("IIdentityService")
method_12nj2l_registerasync[["RegisterAsync()"]]
method_1gbqw83_refreshtokenasync[["RefreshTokenAsync()"]]
method_1ww1s1_loginasync[["LoginAsync()"]]
method_d5t49u_onstateinvalidated[["OnStateInvalidated()"]]
method_urpd77_logoutasync[["LogoutAsync()"]]
method_yzr6ph_getprofileasync[["GetProfileAsync()"]]
file_1fs0p2c_userprofiledto_cs[/"UserProfileDto"/]
type_udpmrx_iidentityservice[/"IIdentityService"/]
file_1ud0jop_iidentityservice_cs -->|UserProfileDto| file_1fs0p2c_userprofiledto_cs
IIdentityService Execution Overview
flowchart TD
file_1ud0jop_iidentityservice_cs("IIdentityService")
method_12nj2l_registerasync[["RegisterAsync()"]]
method_1gbqw83_refreshtokenasync[["RefreshTokenAsync()"]]
method_1ww1s1_loginasync[["LoginAsync()"]]
method_d5t49u_onstateinvalidated[["OnStateInvalidated()"]]
method_urpd77_logoutasync[["LogoutAsync()"]]
method_yzr6ph_getprofileasync[["GetProfileAsync()"]]
file_1ud0jop_iidentityservice_cs -->|contains| method_12nj2l_registerasync
file_1ud0jop_iidentityservice_cs -->|contains| method_1gbqw83_refreshtokenasync
file_1ud0jop_iidentityservice_cs -->|contains| method_1ww1s1_loginasync
file_1ud0jop_iidentityservice_cs -->|contains| method_d5t49u_onstateinvalidated
file_1ud0jop_iidentityservice_cs -->|contains| method_urpd77_logoutasync
file_1ud0jop_iidentityservice_cs -->|contains| method_yzr6ph_getprofileasync
Diagram Validation
- Status: pass