Fonctionnement
- Un utilisateur tente de se connecter au moyen d’un formulaire de connexion Auth0 (intégré à votre site ou hébergé par Auth0).
- Si Auth0 ne trouve pas d’utilisateur associé aux identifiants fournis dans votre connexion de base de données, il appelle alors le point de terminaison de migration sur votre site WordPress avec les identifiants de l’utilisateur et le jeton de migration.
- Le plugin trouve un utilisateur dans votre base de données WordPress à l’aide du nom d’utilisateur ou du courriel fourni, puis vérifie le mot de passe.
- Si l’utilisateur peut être authentifié avec succès, Auth0 crée l’utilisateur dans la connexion de base de données de votre site, l’authentifie et ouvre sa session.
- La prochaine fois que l’utilisateur se connectera, il utilisera son compte utilisateur Auth0, et le point de terminaison de migration sera ignoré.
Mise en place et configuration
- Créez et configurez correctement une application, puis créez et activez une connexion de base de données vide pour l’application. Vous pouvez utiliser la même application et la même connexion que celles créées dans le processus standard de l’assistant de configuration, ou les créer à partir de zéro. Pour en savoir plus sur l’assistant de configuration, consultez Installer Login by Auth0.
- Dans l’écran Auth0 > Settings de WordPress, assurez-vous que le Domaine, l’ID client et le Secret client de l’application sont bien enregistrés dans les champs correspondants de l’onglet Basic.
-
Dans la vue Advanced, activez le paramètre User Migration Endpoints, puis sélectionnez Save Changes. Si vous utilisez des paramètres définis par des constantes, réglez
AUTH0_ENV_MIGRATION_WSsurtrueetAUTH0_ENV_MIGRATION_TOKENsur une chaîne aléatoire sécurisée d’au moins 16 caractères, sans guillemets simples ni barres obliques inverses. - Dans les paramètres, vous devriez maintenant voir un jeton de sécurité. Gardez cette page ouverte, car vous aurez besoin de cette valeur plus tard dans la procédure.
- Dans l’Auth0 Dashboard, accédez à la connexion de base de données que vous souhaitez utiliser, puis activez Requires Username et Import Users to Auth0.
- Sélectionnez la vue Base de données personnalisée, puis activez Utiliser ma propre base de données.
- Il devrait y avoir deux onglets sous ce paramètre, dans Database Action Scripts : un pour Login et un pour Get User.
-
Sélectionnez la vue Connexion, supprimez le code existant, copiez le code
db-login.jsdu dépôt GitHub, puis collez-le dans l’éditeur de code. -
Cette étape s’applique aux versions 3.10.0 et antérieures : Repérez
{THE_WS_URL}et remplacez-le par l’URL du site de votre instance WordPress, suivie de/index.php?a0_action=migration-ws-login. Vous trouverez l’URL du site dans l’écran Settings > General de wp-admin. Vous pouvez le vérifier en collant l’URL complète dans votre navigateur. Vous devriez voir{"status":401,"error":"Unauthorized"}. -
Cette étape concerne les versions 3.10.0 et antérieures : repérez
{THE_WS_TOKEN}et remplacez-le par le jeton qui figure dans le paramètre User Migration Endpoints. - Il ne devrait y avoir aucune erreur dans l’éditeur. Si tout semble correct, cliquez sur Enregistrer en haut.
-
Cette étape s’applique à la version 3.11.0 et aux versions ultérieures : Faites défiler la page jusqu’à Settings et ajoutez les variables de configuration suivantes :
endpointUrldéfini à l’URL du site de votre instance WordPress (wp-admin > Settings > General > champ “Site URL”), suivie de/index.php?a0_action=.migrationTokendéfini à la valeur du jeton de sécurité indiquée à l’étape 4 ci-dessus.userNamespacedéfini au nom de votre application dans Auth0, ou à toute autre valeur ne contenant que des lettres, des chiffres et des tirets.

- Cliquez sur le bouton Essayer en haut et utilisez un compte WordPress valide dans le formulaire qui s’affiche. Vous devriez voir “Le profil est” suivi des données de l’utilisateur. Sinon, veuillez consulter la section Dépannage ci-dessous.
- Sélectionnez la vue Get User, effacez le code existant, copiez le code db-get-user.js du dépôt GitHub, puis collez-le dans l’éditeur de code.
-
Cette étape s’applique à la version 3.10.0 et aux versions antérieures : Recherchez
{THE_WS_URL}et remplacez-le par l’URL du site de votre instance WordPress, suivie de /index.php?a0_action=migration-ws-get-user. L’URL du site se trouve dans l’écran Réglages > Général de wp-admin. Vous pouvez le vérifier en collant l’URL complète dans votre navigateur. Vous devriez voir{"status":401,"error":"Unauthorized"}. -
Cette étape s’applique à la version 3.10.0 ou aux versions antérieures : Recherchez
{THE_WS_TOKEN}et remplacez-le par le jeton affiché sous le paramètre Points de terminaison de migration d’utilisateurs. - Il ne devrait y avoir aucune erreur dans l’éditeur. Si tout semble bon, cliquez sur Enregistrer.
- Cliquez sur le bouton Essayer en haut, puis saisissez dans le formulaire qui s’affiche un courriel associé à un compte utilisateur WordPress valide. Vous devriez voir “The profile is”, suivi des données de l’utilisateur. Sinon, veuillez consulter la section Dépannage ci-dessous.
- Dans une nouvelle session de navigateur, accédez à une page de connexion du site WordPress et tentez de vous connecter (l’utilisateur ne doit pas déjà exister dans la base de données). Vous remarquerez qu’au départ, la connexion prend un peu plus de temps que d’habitude, mais elle devrait aboutir. Les connexions suivantes seront plus rapides.
- (FACULTATIF) Pour activer une sécurité supplémentaire pour les points de terminaison de migration, accédez à l’écran Auth0 > Settings dans WordPress, activez l’option, puis cliquez sur Save Changes. Essayez d’ouvrir une session avec un autre utilisateur pour vérifier qu’Auth0 peut toujours accéder aux points de terminaison.
Dépannage
- URL ou jeton incorrect dans les scripts de base de données personnalisés.
- Liste d’autorisation d’adresses IP activée, mais avec des adresses IP incorrectes.
- Points de terminaison restreints ou mis en cache sur votre instance WordPress.
Unexpected token < in JSON at position 0
{"status":401,"error":"Unauthorized"}
// ou
{"status":403,"error":"Forbidden"}
Si vous voyez plutôt la page d’accueil ou une erreur 404, c’est que l’URL est incorrecte. Repérez l’URL de votre site sous Settings > General > Site URL dans l’interface d’administration de WordPress. Ajoutez /index.php?a0_action=migration-ws-login à la fin pour le script Login et /index.php?a0_action=migration-ws-get-user à la fin pour le script Get User.
- Pour les versions 3.10.0 et antérieures : La valeur de l’URL devrait apparaître directement dans le script comme premier paramètre de l’appel
request.post. - Pour les versions 3.11.0 et ultérieures : La valeur du jeton devrait être enregistrée dans une variable de configuration. Ajoutez ce qui suit à la première ligne de la fonction et utilisez le bouton Try pour voir ce qui est stocké dans
endpointUrl:
callback(null, configuration);
Si vous êtes certain que les URL sont correctes et que le problème persiste, vérifiez auprès de votre hébergeur pour vous assurer que ces URL ne sont ni mises en cache ni restreintes de quelque façon que ce soit.
Mauvais courriel ou mot de passe
callback(null);
par :
callback(wpUser.error);
Enregistrez le script, puis essayez de nouveau la connexion. Vous devriez voir l’un des messages suivants et pouvoir cerner le problème à l’aide des étapes ci-dessous. Une fois le problème résolu, remettez le script dans son état initial.
Interdit
- Pour les versions 3.10.0 et antérieures : la valeur du jeton doit apparaître dans le script lui-même après
access_token: - Pour les versions 3.11.0 et ultérieures : la valeur du jeton doit être enregistrée dans une variable de configuration. Ajoutez ce qui suit à la première ligne de la fonction et utilisez le bouton Try pour voir ce qui est stocké dans
migrationToken:
callback(null, configuration);
Cela signifie que la liste d’adresses IP autorisées pour la migration est activée, mais que l’adresse IP entrante ne s’y trouve pas. Juste sous le script Login, vous devriez voir une liste d’adresses IP :


Authorization. Pour obtenir de l’aide sur le dépannage du serveur, consultez Apache 2.4 + PHP-FPM et les en-têtes Authorization sur stackoverflow.com. Pour voir comment le jeton est récupéré, consultez le code du plugin dans le dépôt GitHub.
Jeton invalide
Identifiants invalides
Impossible de modifier le courriel ou données utilisateur erronées
- Si vous n’avez aucune donnée utilisateur enregistrée à conserver (par exemple, si vous utilisez uniquement la connexion pour permettre l’ouverture de session et que vous ne stockez aucune métadonnée), vous pouvez créer une nouvelle connexion de base de données personnalisée en suivant les étapes ci-dessus (avec les notes de la version 3.11.0) et basculer l’application vers cette nouvelle connexion (assurez-vous de désactiver l’ancienne connexion). La migration redémarrera et il n’y aura aucune incidence sur l’expérience utilisateur.
- Si vous avez des données dans Auth0 qui doivent être conservées, vous pouvez utiliser notre extension User Import/Export pour ajuster les données utilisateur.
- Créez une nouvelle connexion de base de données personnalisée en suivant les étapes ci-dessus (avec les notes de la version 3.11.0).
- Exportez tous les utilisateurs de la connexion existante (nous vous recommandons de mettre votre site en mode maintenance pendant la transition afin qu’aucun utilisateur ne soit omis).
- Modifiez tous les ID utilisateur pour ajouter l’espace de noms utilisé lors de la création de la nouvelle connexion. Les ID utilisateur devraient passer de quelque chose comme
auth0|123àauth0|Your-WP-Site-Name|123. Ajustez tous les autres champs nécessaires pour respecter le schéma d’importation. Pour en savoir plus, consultez Bulk User Import Database Schema and Examples. - Activez la nouvelle connexion et désactivez l’ancienne connexion pour votre application.
- Importez les nouvelles données utilisateur dans la nouvelle connexion et testez.
- Si vous avez un compte payant, vous pouvez communiquer avec notre équipe de soutien pour exécuter un script de mise à jour de la base de données afin de convertir les ID utilisateur en une version avec espace de noms et d’ajouter cet espace de noms à votre script de base de données en même temps (étape 12 dans Configuration et paramétrage ci-dessus).