Product Documentation

The project is built using SwiftUI 3.0, which allows the app to run on iPhones, iPads, iPods and Macs.

The major business functionality is present in the files APIEndpointManager.swift, FidoService.swift, AccountManager.swift, and ResponseModel.swift.

APIEndpointManager

Builds the REST endpoint to make easy HTTP REST calls to the iosdemo Java servlet.

FidoService

Handles all the communication between the App and the Java servlet. It contains functions to get challenges from the server, verify assertions for signed challenges, retrieve user key info, delete user keys, and delete accounts.

AccountManager

Manages the communication with the Passkeys API; e.g., AuthenticationServices. It is responsible for the following:

  • Managing user registration via FaceID/TouchID/security key
  • Managing user login via FaceID/TouchID/security key
  • Handling errors from the Java servlet and AuthenticationServices APIs
  • Managing the login state for the user

ResponseModel

Contains models for parsing responses from the Java servlet to make the data is easy to access in the app.