Skip to main content

Overview

Para One Click Login is the default experience—Para hosts the entire flow for existing users and new signups. If you turn on passkey or password requirements in the Developer Portal, the optional sections below show how to handle them.
Beta Testing Credentials In the BETA Environment, you can use any email ending in @test.getpara.com (like dev@test.getpara.com) or US phone numbers (+1) in the format (area code)-555-xxxx (like (425)-555-1234). Any OTP code will work for verification with these test credentials. These credentials are for beta testing only. You can delete test users anytime in the beta developer console to free up user slots.

Prerequisites

To use Para, you need an API key. This key authenticates your requests to Para services and is essential for integration.
Don’t have an API key yet? Request access to the to create API keys, manage billing, teams, and more.
Need to install the SDK? Start with the .
Para ships with One Click enabled. You can add requirements like Passkey-only signup or password fallback from the . Adjust the optional sections below only if you turn on those features.

Start the Authentication Flow

Inject the Para manager and authentication helpers, then launch the flow with whichever identifier your UI collects (email or phone). Para One Click handles the rest unless you enable extra verification.
AuthenticationView.swift
The completeLogin() helper can mark your app as authenticated and transition to the signed-in experience:
AuthenticationView.swift

Handle OTP Signup (Optional)

Only implement this step if you turn on OTP / passkey signup in the Developer Portal. Collect the OTP, exchange it for a verified state, and finish signup:
AuthenticationView.swift
If you skip setDefaultWebAuthenticationSession(_:), initiateAuthFlow returns a loginUrl you can present manually using presentAuthUrl(_:context:webAuthenticationSession:). The automatic .done stage shown above relies on the default session being set.

Support Direct Passkey Login

If you already know a user has passkeys registered, you can offer a shortcut that skips email/phone input:
AuthenticationView.swift

Next Steps

  • Add social providers alongside this flow in
  • Manage existing sessions with