Context
We want to be able to login users from the Clarius App to the ThinkSono app. A fully fledged solution would be a full implementation of OAuth2.0 protocol. However, this solution is expected to take a few months or more.
This RFC proposes an preliminary solution, based on OAuth principles, which could be implemented much faster.
It would satisfy the main use-case: A Clarius user, using the Clarius app, initiates an exam in the AutoDVT app and doesn't have an AutoDVT account. Secondary use-cases are not required for this flow (e.g. linking an AutoDVT user to a Clarius user or Login with Clarius button, similar to Login with Facebook, added directly in the AutoDVT app)
Process
- In Clarius App, a user selects AutoDVT
- Clarius App opens the AutoDVT app with an intent, which includes a identity token (e.g. in JWT format) with the following fields:
- Unique User ID, which can never change (e.g. user GUID or email if users can't change their email)
- email (if User ID is not email)
- name of user (Optional)
- AutoDVT app starts and sends the identity token to AutoDVT backend
- AutoDVT backend verifies the identity token on Clarius backend (e.g. /verify-token endpoint)
- If verification passes, AutoDVT backend creates a user with the same username
- AutoDVT backend returns success to AutoDVT app and logs in the user with the newly created user

Technical requirements for Clarius
- In the app:
- Generate a valid identity token (internet may be required)
- Start AutoDVT with the intent and attach the identity token
- In the backend
- an "/verify-token" endpoint or similar, used to verify identity tokens
Context
We want to be able to login users from the Clarius App to the ThinkSono app. A fully fledged solution would be a full implementation of OAuth2.0 protocol. However, this solution is expected to take a few months or more.
This RFC proposes an preliminary solution, based on OAuth principles, which could be implemented much faster.
It would satisfy the main use-case: A Clarius user, using the Clarius app, initiates an exam in the AutoDVT app and doesn't have an AutoDVT account. Secondary use-cases are not required for this flow (e.g. linking an AutoDVT user to a Clarius user or Login with Clarius button, similar to Login with Facebook, added directly in the AutoDVT app)
Process
Technical requirements for Clarius