Code Samples Quick Start

Overview

This page briefly summarises the blog’s completed code samples. These all use only fictional data and user accounts. They include frontends that call Cloud Hosted APIs and a Cloud Authorization Server. For each app, one of the following credentials can be used to sign in:

  • Demo User with Low Privileges: guestuser@mycompany.com
  • Demo User with High Privileges: guestadmin@mycompany.com
  • Password: GuestPassword1

Final Secured Single Page Application

This is a React SPA that implements OpenID Connect via the Token Handler Pattern. It uses only the latest and strongest secure cookies in the browser, while also enabling pure SPA development and deployment.

The SPA is deployed to many global locations using AWS Cloudfront. Anyone can run the app via the below link. To run the app locally you can follow the Final SPA Instructions.

Secured Desktop App

The Desktop Sample is a cross platform Electron React App that runs on Windows, macOS and Linux. Open ID Connect is implemented via the AppAuth-JS Library, and logins use the system browser:

A Private URI Scheme is used to notify the app of the login result and return it to the foreground. To run the app on your local PC you can follow the Final Desktop App Instructions.

Secured Android App

The Android App is a Single Activity App coded via Kotlin and Jetpack Compose. Open ID Connect is implemented via the Android AppAuth Library , using the most secure Claimed HTTPS Schemes option.

Logins are managed via a Chrome Custom Tab, with modern security and good usability. To run the app from Android Studio you can follow the Android Code Sample Instructions.

Secured iOS App

The iOS App is developed using SwiftUI with equivalent behaviour, and Open ID Connect is implemented via the iOS AppAuth Library, using the most secure Claimed HTTPS Schemes option.

Logins are managed via Apple’s ASWebAuthenticationSession window. To run the app from Xcode you can follow the iOS Code Sample Instructions.

API Behaviour

The frontend code samples are supported by backend APIs. The following blog posts walk through the key technical behaviours implemented by samples, including areas such as reliability, extensibility and productive development. In addition to good security, the end result should be a modern all round architecture with the best separation of concerns.

Links