Auth0 vous permet d’ajouter l’authentification et de pouvoir accéder aux informations relatives au profil de l’utilisateur dans votre application. Ce guide explique comment intégrer Auth0 à n’importe quelle application Web Go, nouvelle ou existante.
1
Configuration d’Auth0
Pour utiliser les services Auth0, vous devez avoir une application installée dans Auth0 Dashboard. L’application Auth0 est l’endroit où vous allez configurer le fonctionnement de l’authentification pour le projet que vous développez.
Configurer une application
Utilisez le sélecteur interactif pour créer une nouvelle application Auth0 ou sélectionner une application existante qui représente le projet avec lequel vous souhaitez effectuer l’intégration. Dans Auth0, chaque application se voit attribuer un identifiant client unique alphanumérique que votre code d’application utilisera pour appeler les API Auth0 via la trousse SDK.Tous les paramètres que vous configurez à l’aide de ce guide de démarrage rapide seront automatiquement mis à jour pour votre application dans le Tableau de bord, qui est l’endroit où vous pourrez gérer vos applications à l’avenir.Si vous préférez explorer une configuration complète, consultez plutôt un exemple d’application.Configuration des URL de rappel
Une URL de rappel est une URL intégrée dans votre application vers laquelle vous souhaitez qu’Auth0 redirige les utilisateurs après leur authentification. Si elle n’est pas définie, les utilisateurs ne seront pas redirigés vers votre application après s’être connectés.Si vous suivez notre exemple de projet, définissez cette URL comme suit :
http://localhost:3000``/callback
.Configuration des URL de déconnexion
Une URL de déconnexion est une URL intégrée dans votre application vers laquelle vous souhaitez qu’Auth0 redirige les utilisateurs après leur déconnexion. Si elle n’est pas définie, les utilisateurs ne pourront pas se déconnecter de votre application et recevront un message d’erreur.Si vous suivez notre exemple de projet, définissez cette URL comme suit :
http://localhost:3000
.2
Installer les dépendances
Créez un fichier Enregistrez le fichier
go.mod
pour lister toutes les dépendances de votre application.Pour intégrer Auth0 dans une application Go, ajoutez les packages coreos/go-oidc/v3
et x/oauth2
.En plus des packages OIDC et OAuth2, ajoutez joho/godotenv
, gin-gonic/gin
, et gin-contrib/sessions
.Cet exemple utilise
gin
pour le routage, mais vous pouvez utiliser le routeur de votre choix.go.mod
avec les dépendances nécessaires et installez-les en utilisant la commande suivante dans votre terminal :go mod download
3
Configurer les variables d’environnement
Vous devez définir les variables d’environnement suivantes dans
.env
à la racine de votre répertoire de projet :- AUTH0_DOMAIN : Le domaine de votre locataire Auth0. Trouvez votre domaine Auth0 dans Auth0 Dashboard sous les paramètres de votre application dans le champ Domain (Domaine). Pour les domaines personnalisés, définissez-le plutôt sur la valeur de votre domaine personnalisé.
- AUTH0_CLIENT_ID : L’identificateur de l’application Auth0 que vous avez configurée précédemment dans ce guide rapide. Vous le trouverez dans Auth0 Dashboard sous les paramètres de votre application dans le champ Client ID (Identificateur client).
- AUTH0_CLIENT_SECRET : Le secret de l’application Auth0 que vous avez configurée précédemment dans ce guide rapide. Vous le trouverez dans Auth0 Dashboard, sous les paramètres de votre application dans le champ Client Secret (Secret client).
- AUTH0_CALLBACK_URL : L’URL utilisée par Auth0 pour rediriger l’utilisateur après une authentification réussie.
4
Configurez les packages OAuth2 et OpenID Connect
5
Configurer vos routes d’application
Créez un fichier nommé
router.go
dans le dossier platform/router
. Dans ce package, créez une méthode pour configurer et renvoyer nos routes en utilisant github.com/gin-gonic/gin. Vous passerez une instance de Authenticator
à la méthode pour l’utiliser avec les gestionnaires login (connexion)
et callback (rappel)
.6
Ajouter une fonctionnalité de connexion à votre application
Pour que l’utilisateur s’authentifie, nous devons créer une fonction gestionnaire pour traiter la route
/login
.Créez un fichier nommé login.go
dans le dossier web/app/login
et ajoutez une fonction Handler
. Lors de l’exécution du gestionnaire, l’utilisateur sera redirigé vers Auth0 où il pourra saisir ses identifiants.Pour appeler la route /login
ajoutez un lien vers /login
dans le modèle home.html
situé dans le directory web/template
.7
Gérer le rappel d’authentification
Une fois que les utilisateurs se sont authentifiés en utilisant la page de connexion universelle d’Auth0, ils reviendront à l’application à la route
/callback
.Créez un fichier nommé callback.go
dans le dossier web/app/callback
et ajoutez une fonction Handler
.Ce gestionnaire prendra la chaîne de requête code
fournie par Auth0 et l’échangera contre un jeton d’ID et un jeton d’accès.Si le jeton d’ID est valide, il stockera les informations de profil et le jeton d’accès dans la session. Les informations de profil sont basées sur les demandes contenues dans le jeton d’ID. Le stockage de session permet à l’application d’accéder à ces informations selon les besoins.8
Afficher les informations du profil utilisateur
Maintenant que vos utilisateurs peuvent se connecter, vous voulez probablement pouvoir récupérer et utiliser les informations de profil associées aux utilisateurs authentifiés.Vous pouvez accéder à ces informations de profil, telles que leur pseudonyme ou leur photo de profil, à partir du
profile
qui a été sauvegardé dans la session précédemment.Créez un gestionnaire pour le point de terminaison /user
dans web/app/user/user.go
et renvoyez le fichier HTML correspondant. Comme le profile
passe à ctx.HTML()
, vous pouvez accéder aux informations de profil, telles que picture
et nickname
à l’intérieur de ce même fichier HTML.Un exemple de fichier HTML de ce type pourrait ressembler à l’exemple ci-dessous, mais vous pouvez récupérer n’importe quelle information de profil, y compris des demandes personnalisées.9
Ajouter une fonctionnalité de déconnexion à votre application
Pour déconnecter l’utilisateur, effacez les données de la session et redirigez l’utilisateur vers le point de terminaison de déconnexion Auth0. Vous trouverez plus d’informations à ce sujet dans la documentation sur la déconnexion.Créez un fichier nommé
logout.go
dans le dossier web/app/logout
, et ajoutez la fonction Handler
pour rediriger l’utilisateur vers le point de terminaison de déconnexion Auth0.L’URL returnTo
doit figurer dans la liste des URL de déconnexion autorisées de la section des paramètres de l’application. Pour plus d’informations, consultez Rediriger les utilisateurs après la déconnexion.Créez un fichier nommé user.js
dans le dossier web/static/js
, et ajoutez le code pour supprimer le témoin d’un utilisateur connecté.10
Protéger les routes
La pratique recommandée veut que certaines routes ne soient accessibles qu’aux utilisateurs authentifiés. Lorsque des utilisateurs non authentifiés essaient d’accéder à des routes protégées, votre application devrait les rediriger.Dans ce cas, vous devez mettre en œuvre un intergiciel pour accéder à la requête HTTP. La fonction d’intergiciel détermine si la requête doit être dirigée vers le gestionnaire de point de terminaison ou si elle doit être bloquée.Créez un fichier nommé
isAuthenticated.go
dans platform/middleware
et ajoutez une fonction qui vérifie si l’utilisateur est authentifié ou non, en fonction de la clé de session de profile
. Si l’utilisateur n’est pas authentifié, l’intergiciel le redirigera vers la racine de l’application.L’intergiciel créé, nous pouvons le configurer pour toute route nécessitant une authentification en l’ajoutant au routeur.11
Lancer votre application
L’authentificateur et le routeur configurés, nous pouvons connecter les éléments à l’aide du point d’entrée de notre application. Dans
main.go
, créez une instance de l’authentificateur et du routeur, qui reçoit l’instance de l’authentificateur.Si vous utilisez un fichier .env
, vous devez appeler godotenv.Load()
au tout début de la fonction main()
.Lancez votre application en utilisant la commande suivante dans votre terminal :go run main.go
Étapes suivantes
Beau travail! Si vous en êtes arrivé là, vous devriez avoir la connexion, la déconnexion et les informations de profil utilisateur actives dans votre application.Cela conclut notre tutoriel de démarrage rapide, mais il y a tellement plus à explorer. Pour en savoir plus sur ce que vous pouvez faire avec Auth0, consultez :- Auth0 Dashboard : apprenez à configurer et gérer votre locataire et vos applications Auth0
- Auth0 Marketplace : découvrez des intégrations que vous pouvez activer pour étendre les fonctionnalités d’Auth0