4D Netkit : Amélioration de l’autorisation OAuth2

Traduit automatiquement de Deepl

Avec 4D v19 R3, la connexion de votre application à l’API Microsoft Graph via OAuth 2.0 est devenue incroyablement pratique grâce à 4D NetKit.

Désormais, avec 4D v20 R2, vous pouvez obtenir de manière transparente un jeton OAuth 2.0 pour l’API Google ou d’autres serveurs OAuth 2.0. Et mieux encore, pour améliorer encore l’intégration de ce processus d’authentification dans votre application, nous avons introduit une fonctionnalité qui vous permet d’afficher votre page HTML directement dans votre navigateur web une fois que le jeton est reçu.

Continuez à lire pour tous les détails !

HDI Connecter à GitHub en utilisant OAuth 2.0

Conditions préalables

Avant d’obtenir un jeton de l’API Google, la première étape consiste à obtenir les informations d’identification du client OAuth 2.0 à partir de la console API Google. Cela permet d’établir une relation de confiance entre votre application et l’API Google. La confiance est unidirectionnelle : votre application fait confiance à l’API Google, et non l’inverse.

Ce tutoriel de Google est une excellente ressource pour comprendre comment utiliser OAuth 2.0 pour accéder aux API de Google.

L’enregistrement permet d’intégrer votre application à la console API de Google et d’établir les informations qu’elle utilise pour obtenir des jetons, notamment

  • un identifiant client: Un identifiant unique attribué par la console API de Google.
  • une URI/URL de redirection: Un ou plusieurs points d’extrémité où votre application recevra les réponses de la Console API de Google.
  • a Secret du client: clé secrète utilisée par votre application pour s’authentifier auprès de la Google API Console.

Obtenir un jeton d’accès auprès de Google

Il vous suffit d’utiliser la commande New OAuth2 provider ou la classe cs.NetKit.OAuth2Provider avec l’attribut name égal à « Google » pour obtenir votre jeton.

csVous pouvez également utiliser la classeNetKit.OAuth2Provider avec toutes les informations fournies lors de l’enregistrement :

var $oAuth2 : cs.NetKit.OAuth2Provider
var $param : Object

$param:={name:"Google"; \
   permission:"signedIn"; \
   clientId:"499730024306-rfub401kvb2794llikrtb4fphigrggt7.apps.googleusercontent.com"; \
   clientSecret:"fc1kwxb6NMzEKi9Ka_fjvB2Z"; \
   redirectURI:"http://127.0.0.1:50993/authorize/"; \
   scope:"https://mail.google.com/"}
$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$token:=$oAuth2.getToken()

obtenir un jeton d’accès à partir d’autres serveurs

Vous pouvez utiliser la commande the New OAuth2 provider ou la classe cs.NetKit.OAuth2Provider avec d’autres serveurs OAuth 2.0 que Microsoft ou Google. Il vous suffit de remplir l’authenticateURI et le tokenURI avec les URI spécifiques de votre serveur OAuth 2.0 et de vérifier que le code d’autorisation renvoyé est au format JSON.

Par exemple, vous pouvez connecter votre application à GitHub avec le code ci-dessous :

var $oAuth2 : cs.NetKit.OAuth2Provider
var $param : Object

$param:={permission:"signedIn"; \
clientId:"734e0b59xxx"; \
clientSecret:"125a576xxx"; \
redirectURI:"http://localhost:50993/authorize/"; \
scope:"repo, user"; \
authenticateURI:"https://github.com/login/oauth/authorize"; \
tokenURI:"https://github.com/login/oauth/access_token"}

$oAuth2:=cs.NetKit.OAuth2Provider.new($param)
$token:=$oAuth2.getToken()

Personnaliser les pages de résultats

Pour afficher votre propre page à la fin de l’authentification, vous devez utiliser les attributs authenticationPage et authenticationErrorPage:

$param.authenticationPage:=Folder(fk web root folder).file("authentication.htm")
$param.authenticationErrorPage:=Folder(fk web root folder).file("error.htm")

Nous nous efforçons constamment de fournir à nos utilisateurs la meilleure expérience possible, et nous vous encourageons à partager vos réflexions et vos commentaires sur le forum 4D. Vos commentaires nous aident à mieux comprendre vos besoins et à améliorer continuellement nos produits et services.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.