How dora4/dorachat-authsdk works
DoraChat Auth SDK is an Android library for wallet-based account authentication, session management, and authenticated API requests. The principal workflow starts in the sign-in screen: it checks wallet connectivity and password input, then delegates sign-in to AuthManager, which builds a protected request, calls the auth API, and updates token and user state. Later requests can attach access tokens and refresh them on 401 responses. The README also documents host-app initialization and optional payment integration. The graph follows sampled Kotlin and README evidence; profile state and event signaling are included, but their broader consumers are not established.
Main entry points: AuthManager.kt Auth manager · AuthInterceptor.kt Auth interceptor · AuthService.kt Auth API client · SignInActivity.kt Sign-in screen
Components 17
App Entry
- Sign-in screen
lib/src/main/java/com/dorachat/auth/SignInActivity.kt - SDK config
lib/src/main/java/com/dorachat/auth/DoraChatSDK.kt
Authentication
- Auth manager
lib/src/main/java/com/dorachat/auth/AuthManager.kt - Request models
lib/src/main/java/com/dorachat/auth/ReqSignIn.kt - Secure request builder
lib/src/main/java/com/dorachat/auth/SecureRequestBuilder.kt
Session State
- Encrypted tokens
lib/src/main/java/com/dorachat/auth/TokenStore.kt - User state
lib/src/main/java/com/dorachat/auth/UserManager.kt - User model
lib/src/main/java/com/dorachat/auth/DoraUser.kt - User profile model
lib/src/main/java/com/dorachat/auth/DoraUserInfo.kt - Auth events
lib/src/main/java/com/dorachat/auth/SignInEvent.kt - Expired-session signal
lib/src/main/java/com/dorachat/auth/SignInExpiredBus.kt
API Security
- Auth API client
lib/src/main/java/com/dorachat/auth/AuthService.kt - Auth interceptor
lib/src/main/java/com/dorachat/auth/AuthInterceptor.kt
Other components
- Host app
- Wallet integration
- Auth server
- HTTP client
Connections 25
- Host app → SDK config: initializes
- Host app → Auth interceptor: configures
- Sign-in screen → SDK config: reads config
- Sign-in screen → Wallet integration: checks wallet
- Sign-in screen → Wallet integration: connects wallet
- Sign-in screen → Auth manager: submits credentials
- Auth manager → Request models: creates request
- Auth manager → Secure request builder: encodes request
- Auth manager → Auth API client: calls sign-in
- Auth API client → Auth server: sends request
- Auth server → Auth API client: returns result
- Auth manager → Encrypted tokens: saves tokens
- Auth manager → User state: updates user
- Auth manager → Auth events: posts events
- Auth manager → Auth API client: calls sign-out
- Auth manager → Auth API client: checks token
- Auth interceptor → Encrypted tokens: reads tokens
- Auth interceptor → HTTP client: intercepts requests
- Auth interceptor → Secure request builder: builds refresh body
- Auth interceptor → Auth server: requests refresh
- Auth interceptor → Encrypted tokens: saves refreshed tokens
- Auth interceptor → Expired-session signal: signals expiration
- Auth interceptor → HTTP client: retries request
- Auth manager → SDK config: reads config
- Auth manager → User model: creates user