Passwordless activation

šŸ” Passwordless Activation in REL-ID

āœ… What is Passwordless Activation?

Passwordless activation refers to an onboarding flow in which the user is not required to set or enter a password. Instead, alternative secure methods such as OTPs, activation codes, or document-based ID verification (IDV) are used to authenticate and register the user and their device.


šŸ› ļø Methods Used in Passwordless Activation

MethodDescription
šŸ”¢ Activation CodeOne-time code issued by backend (via helpdesk, SMS, email) and validated during activation.
šŸ“© Email OTP / šŸ“± SMS OTPTemporary code sent to user’s registered email/phone. Entered during activation.
🪪 IDV (Document + Selfie)Identity verified via official document and live selfie capture.
šŸŽ« Pre-Provisioned Secure TokenAdmin issues pre-authorized session/token to initialize user device without credentials.

šŸ”’ Benefits of Passwordless Activation

  • Improved UX: No password complexity or resets.
  • Higher Security: One-time codes or biometrics reduce password reuse risks.
  • Mobile-First: Optimized for app flows where biometric or OTP login is more natural.
  • Enterprise-Friendly: Suits managed devices or field staff with limited UI needs.

šŸ”§ How SDK Handles It

  • The REL-ID SDK skips the getPassword event entirely.
  • Backend config (IS_USER_PASS = false) determines this behavior.
  • Activation completes using OTP + LDA + optional IDV/secret questions.

🧭 Passwordless Activation Flow (Mermaid Diagram)

flowchart TD
    A["šŸš€ App Launches & Calls initialize()"] --> B["šŸ“ getLoginId"]
    B --> C["šŸ”” setUser()"]
    C --> D["šŸ”¢ getActivationCode or OTP"]
    D --> E["šŸ” setActivationCode() or setOTP()"]
    E --> F{"🧠 IDV Required?"}
    F -- "āœ… Yes" --> G["šŸ“ø IDV Document Capture + Selfie"]
    G --> H["🧾 Confirm IDV Verification"]
    H --> I["āœ”ļø Proceed"]
    F -- "āŒ No" --> I
    I --> J["šŸ”’ getUserConsentForLDA"]
    J --> K["āœ… setUserConsentForLDA()"]
    K --> L["šŸŽ‰ onUserLoggedIn"]

šŸ“Œ Developer Notes

  • Make sure password step is not forced in backend challenge configuration.
  • Use event handlers to skip setPassword() if it's not triggered.
  • Ensure LDA and OTP flows are tested across edge cases.