Skip to content

Implement User Consent Screen #89

Description

@Ngha-Boris

Description

Create the final consent screen before presentation submission. This screen provides a summary of what will be shared and requires explicit user confirmation.

The screen must clearly communicate the implications of sharing credentials and handle final submission preparation.

Tasks

  • Create PresentationConsentPage component
  • Display verifier information (name, logo, client_id)
  • Display credential summary (count, types)
  • Display disclosure summary (total claims, selective disclosures)
  • Show final claim list with credential grouping
  • Display security warning about data sharing
  • Implement explicit Confirm action with checkbox:
    • "I consent to sharing the selected information with [Verifier Name]"
  • Implement Cancel action to abort flow
  • Add loading state during submission preparation
  • Handle user authentication for key binding (PIN/biometric prompt)
  • Display submission progress
  • Prevent duplicate submissions (disable button after click)

Consent Summary Display

You are about to share:
┌─────────────────────────────────────┐
│ Verifier: Example Service           │
│                                     │
│ Credentials: 2                      │
│   - PID (SD-JWT)                    │
│   - Membership Card (JWT VC JSON)     │
│                                     │
│ Claims to share: 5 of 12 available  │
│   - Given Name ✓                    │
│   - Family Name ✓                   │
│   - Date of Birth ✓                 │
│   - Membership ID ✓                 │
│   - Membership Level ✓              │
└─────────────────────────────────────┘

☐ I consent to sharing this information with Example Service

[Confirm] [Cancel]

Key Binding Authentication

  • Prompt for PIN/biometric if key binding JWT required
  • Handle authentication failure gracefully
  • Pass authentication result to submission

Acceptance Criteria

  • User explicitly confirms data sharing via checkbox
  • User can cancel before submission
  • Loading indicator displayed during submission preparation
  • Duplicate submissions are prevented (button disabled after first click)
  • User authentication collected for key binding when required
  • Summary accurately reflects selected credentials and claims
  • Clear warning about data sharing implications

Backend Dependencies

  • None (UI only, calls Ticket 8's submission)

Related Tickets

  • Ticket 6 (Claim Review) - Previous step
  • Ticket 8 (Submission) - Handles actual API call

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions