Fonctionnement
Chaque application dispose de sa propre origine de connexion et de son propre émetteur de tokens. Les applications de production et les applications sandbox sont séparées : elles ont des origines, des paramètres et des identités distincts.
Le flux est le code d’autorisation OAuth 2.0 avec PKCE (
S256 uniquement) :
- Votre application ouvre
{origin}/sign-inavecredirect_uri,state,code_challengeetcode_challenge_method=S256. - La page hébergée connecte ou inscrit la personne avec les méthodes que vous avez activées, y compris tout second facteur requis.
- Le navigateur revient vers votre
redirect_uriaveccodeetstate. - Votre application échange le code à
POST {origin}/token/contre un token d’accès, un token ID et un token de rafraîchissement.
Choisissez votre plateforme
JavaScript
Connexion hébergée, rappel, session et déconnexion.
React
État côté client et vues d’application protégées.
Next.js
Sessions côté serveur, routes de rappel et cookies.
iOS
Navigateur système et stockage sécurisé des tokens.
Android
Autorisation par navigateur et rappels de l’application.
React Native
Préparation d’un adaptateur d’authentification natif.
Flutter
Préparation d’un adaptateur d’authentification natif.
Préparez votre application
- Demandez à Didit d’activer Authentication pour votre application. Testez d’abord dans une application sandbox.
- Enregistrez vos URL de redirection exactes (jusqu’à 50) ainsi que les
allowed_originsdu navigateur (jusqu’à 50) qui appellent l’API d’exécution. - Activez les méthodes de connexion que vous souhaitez proposer. Didit ID Wallet est toujours activé.
- Choisissez vos paramètres de session et de mot de passe (voir ci-dessous).
- Testez l’inscription, la connexion, le mot de passe oublié, l’authentification multifacteur, l’expiration de session et la déconnexion avant la mise en production.
URL de redirection
Didit ne renvoie une personne que vers une adresse que vous avez enregistrée. Enregistrez la vôtre dans la console, sous Authentication > Security and sessions > Redirect URLs and allowed origins. Leredirect_uri d’une requête de connexion doit correspondre caractère par caractère à une URL enregistrée : schéma, hôte, port, chemin et requête.
Un port différent, une barre oblique finale ou une casse différente désignent une autre adresse.
Les caractères génériques, les fragments, les identifiants dans l’URL et les schémas personnalisés sont rejetés.
Lorsque l’adresse n’est pas enregistrée, Didit ne redirige jamais vers elle.
{origin}/sign-in répond 400 avec une page indiquant quoi enregistrer et où, et POST {origin}/authorize/ répond 400 {"error": "invalid_redirect_uri"}.
Développement local
Testez sur votre propre machine avec votre application sandbox :- Enregistrez votre URL de rappel avec son port, par exemple
http://localhost:3000/auth/callback. - Si du code de navigateur appelle l’API d’exécution, par exemple pour échanger le code à
POST {origin}/token/, ajoutez aussi l’origine dans Allowed origins :http://localhost:3000, sans chemin ni barre oblique finale. - Lancez la connexion sur l’origine de votre sandbox,
https://<slug>.sandbox.auth.didit.me, avec votre clépk_test_....
localhost, 127.0.0.1 et [::1] sont des adresses distinctes, et chaque port l’est aussi.
Enregistrez chacune de celles que vous utilisez.
Les applications de production n’acceptent jamais http://.
Avant la mise en production, enregistrez votre URL de rappel https:// de production dans votre application de production.
Paramètres de l’application
Vous gérez ces paramètres dans la console, ou avec une session de console autorisée disposant dewrite:authentication.
Garder une même personne entre les produits
Chaque identité porte une valeurvendor_data. Il s’agit de l’external_id que vous avez fourni lors de l’importation de la personne, ou de l’identifiant d’identité Didit sinon. Elle apparaît dans le token d’accès, le token d’identité et GET session/.
Utilisez la même valeur comme vendor_data lorsque vous créez des sessions de vérification et soumettez des transactions. Les événements d’authentification sont alors rattachés à la même personne dans la console que ses vérifications et transactions. Consultez événements et webhooks.
Dérivez vendor_data sur votre backend à partir d’un token vérifié, jamais à partir d’un champ de navigateur non vérifié.
Utilisez le prompt d’intégration partagé pour toute combinaison. Consultez protection contre les bots pour les politiques exécutées lors de la connexion.