Skip to content
đź”’ WidgetsAuthentification utilisateur

Authentification utilisateur

Principe

Le SDK du widget nécessite un jeton d’accès lors de son initialisation. Ce jeton d’accès sera utilisé pour authentifier les utilisateurs finaux auprès des APIs du widget. Le jeton d’accès doit être généré par votre backend à l’aide de la clé d’éditeur fournie par POSOS sous la forme d’un fichier .json. Cette clé est strictement confidentielle et doit être conservée dans votre backend, sans être exposée dans votre frontend.

Cette page décrit comment générer les tokens d’accès avec votre clé d’éditeur.

Migration de la gestion des utilisateurs

Si vous êtes nouveau dans l’intégration des widgets, vous pouvez ignorer cette section.

Si vous utilisiez l’ancien système de gestion des utilisateurs avec des clés privées pour chaque utilisateur et la nécessité de créer des utilisateurs à l’avance, vous devez migrer vers le nouveau système en suivant les instructions de cette page. Plus précisément, vous devrez :

  • implĂ©menter l’authentification des utilisateurs dans votre backend pour rĂ©cupĂ©rer un jeton d’accès pour votre utilisateur Ă  l’exĂ©cution en utilisant votre fichier de clĂ© d’éditeur. Vous n’avez plus besoin de crĂ©er des utilisateurs Ă  l’avance
  • ajuster les paramètres du SDK pour passer le jeton d’accès au lieu de la clĂ© privĂ©e de l’utilisateur

Accès à l’API d’administration

URL d’accès

L’API d’administration se trouve à l’adresse suivante :

https://widgets-api.preprod.trusted.posos.co/api/v1/admin

Authentification

L’API est protégée par une authentification par jeton d’accès qui nécessite 2 éléments :

  • la clĂ© secrète (format .json)
  • un identifiant Client ID transmis en mĂŞme temps que la clĂ© et qui peut ĂŞtre retrouvĂ© ci-dessous par environnement :

Client ID

20286154155-852pf0ti456nd81ongbiecmjqgag84q3.apps.googleusercontent.com

La procédure d’authentification est celle décrite dans la page Authentification.

Utiliser l’API d’administration

Générer un jeton d’accès

Pour générer un jeton d’accès vous aurez besoin d’envoyer le paramètre userExternalId de l’utilisateur. Cet utilisateur est celui de votre application (votre soignant donc). Cet identifiant doit être connu de l’application hôte du widget pour identifier uniquement l’utilisateur.

Bon à savoir : l’utilisateur n’a pas besoin d’être créé au préalable chez Posos, l’API le créera dans la base de données du widget s’il n’existe pas lors de la génération du jeton.

Important : préférez un identifiant anonyme pour le paramètre userExternalId, comme un UUID ou un index de votre base de données. Évitez d’utiliser un RPPS ou d’autres identifiants qui pourraient être sensibles.

Exemple de requĂŞte :

Request

POST
/api/v1/admin/token
curl --request POST \
 --url https://widgets-api.preprod.trusted.posos.co/api/v1/admin/token \
 --header 'Authorization: Bearer <token>' \
 --header 'Content-Type: application/json' \
 --data '{
    "userExternalId": "abcde1234",
}'

Il est possible de passer une région spécifique pour l’utilisateur en ajoutant le paramètre optionnel region dans le corps de la requête. Si ce paramètre n’est pas fourni, la région par défaut sera utilisée (fr_FR).

Request

POST
/api/v1/admin/token
curl --request POST \
 --url https://widgets-api.preprod.trusted.posos.co/api/v1/admin/token \
 --header 'Authorization: Bearer <token>' \
 --header 'Content-Type: application/json' \
 --data '{
    "userExternalId": "abcde1234",
    "region": "fr_BE"
}'

Il est également possible de fournir un paramétrage spécifique à l’utilisateur en spécifiant le paramètre onCreateUser acceptant la propriété blockExportIfAlerts. Si cette propriété est définie à true, l’utilisateur disposera d’une page de validation en cas d’alertes sur la prescription, récapitulant les alertes détectées. Cette option est désactivée par défaut (false).

Request

POST
/api/v1/admin/token
curl --request POST \
 --url https://widgets-api.preprod.trusted.posos.co/api/v1/admin/token \
 --header 'Authorization: Bearer <token>' \
 --header 'Content-Type: application/json' \
 --data '{
    "userExternalId": "abcde1234",
    "onCreateUser": {
      "blockExportIfAlerts": true
    }
}'

Exemple de réponse:

{
  "token": "ey........................"
}

Le token peut ensuite être passé au SDK du widget. Il est nécessaire de garder en tête que :

  • le jeton est liĂ© Ă  l’utilisateur, vous devez donc gĂ©nĂ©rer un jeton pour chaque utilisateur de votre application Ă  l’exĂ©cution.
  • le jeton a une durĂ©e de vie limitĂ©e (1 heure).
  • il est possible d’utiliser la mĂ©thode onAuthTokenRefresh du SDK JavaScript afin de rafraĂ®chir le token juste avant l’expiration de celui-ci.
  • il est Ă©galement possible d’utiliser la mĂ©thode setAuthToken si vous souhaitez gĂ©rer vous-mĂŞme la manière dont le token doit ĂŞtre actualisĂ©.