Delegating the Nabla Console authentication

The Nabla authentication system requires you to create your providers via the Console or the API. Once created, providers received an email to set a password to finalize their account on Nabla. You may already have your own back-office and already manage the creation and authentication of your providers. You can use it to authenticate to the Nabla console.

You can automate the creation of Nabla Console providers accounts through our API, and then for each Nabla Console provider account, create an auto-login link which you can use in your own console or back-office.

This way, the providers using your back-office will only have to click a link/button to access the Nabla Console.

1. Creating a provider through the API

Use the create provider endpoint with your server API key to create a provider and retrieve the provider ID. Make sure self_login_enabled is set to false to prevent the account finalization step to set a password (sent by email).

Example:

curl --request POST \
     --url https://api.nabla.com/v1/server/providers \
     --header ‘Accept: application/json’ \
     --header ‘Authorization: Bearer <YOUR_SERVER_API_KEY>’
     --data '
     {
     "first_name": "Claire",
     "last_name": "Woodward",
     "email": "[email protected]",
     "date_of_birth": "1978-11-20",
     "gender": "FEMALE",
     "roles": ["PRACTITIONER"],
     "self_login_enabled": false
     }'

2. Creating an auto-login link for a given provider

A. Get a one-time-login token for the provider

Use the emit one-time-login user endpoint with your server API key to get the one-time-login token for a given provider ID.

Example:

curl --request GET \
     --url https://api.nabla.com/v1/server/jwt/provider/emit_one_time_login_jwt/<NABLA_PROVIDER_ID> \
     --header ‘Accept: application/json’ \
     --header ‘Authorization: Bearer <YOUR_SERVER_API_KEY>’

B. Use the one-time-login token in the Console URL

Add the one_time_login_jwt query parameter to the Console URL you want to access from your own back-office.

Examples:

  • Link to patient: https://<YOUR_ORG>.pro.nabla.com/patients/<PATIENT_ID>?one_time_login_jwt=<YOUR_ONE_TIME_LOGIN_TOKEN>
  • Link to appointment: https://<YOUR_ORG>.pro.nabla.com/patients/<PATIENT_ID>#<APPOINTMENT_ID>?one_time_login_jwt=<YOUR_ONE_TIME_LOGIN_TOKEN>
  • Link to conversations inbox: https://<YOUR_ORG>.pro.nabla.com/inbox?one_time_login_jwt=<YOUR_ONE_TIME_LOGIN_TOKEN>
  • Link to conversation: https://<YOUR_ORG>.pro.nabla.com/inbox/<CONVERSATION_ID>?section=unassigned&one_time_login_jwt=<YOUR_ONE_TIME_LOGIN_TOKEN>