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/adminAuthentification
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 IDtransmis en même temps que la clé et qui peut être retrouvé ci-dessous par environnement :
Client ID
20286154155-852pf0ti456nd81ongbiecmjqgag84q3.apps.googleusercontent.comLa 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
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
regiondans 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
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
onCreateUseracceptant 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
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
onAuthTokenRefreshdu SDK JavaScript afin de rafraîchir le token juste avant l’expiration de celui-ci. - il est également possible d’utiliser la méthode
setAuthTokensi vous souhaitez gérer vous-même la manière dont le token doit être actualisé.