Civic Pass Implementation Guide
Required Libraries
Overview
This implementation uses three main components:
Auth Client (
@dfinity/auth-client
)Handles Internet Identity authentication
Manages user sessions
Provides access to user's principal
Principal Library (
@dfinity/principal
)Manages ICP principal identifiers
Required for identity verification
Used in both authentication and credential verification
Verifiable Credentials (
@dfinity/verifiable-credentials
)Handles credential requests and verification
Communicates with Civic Pass canister
Manages credential presentation flow
Service Structure
The implementation is split into two main services:
PrincipalService
Manages Internet Identity authentication
Handles principal acquisition and storage
Provides authenticated principal for credential requests
CredentialService
Manages Civic Pass credential requests
Handles communication with Civic Pass canister
Processes credential verification results
Authentication and Credential Flow
1. Principal Service Implementation
2. Credential Service Implementation
3. Usage Example
Flow Description
User initiates authentication flow
Internet Identity authentication completes
Principal is obtained from authenticated identity
Credential verification is requested using the principal
User completes verification in new window
Callback handles verification result
Important Notes
Always ensure authentication is completed before requesting credentials
Handle both authentication and verification errors appropriately
Store principal for reuse when needed
Consider implementing refresh/retry logic for failed verifications
Last updated
Was this helpful?