4D Netkit: Miglioramento dell’autorizzazione OAuth2

Tradotto automaticamente da Deepl

Con 4D v19 R3, la connessione dell’applicazione all’API Microsoft Graph tramite OAuth 2.0 è diventata incredibilmente comoda utilizzando 4D NetKit.

Ora, con 4D v20 R2, è possibile ottenere senza problemi un token OAuth 2.0 per l’API di Google o per altri server OAuth 2.0. E ancora meglio, per migliorare ulteriormente l’integrazione di questo processo di autenticazione nella vostra applicazione, abbiamo introdotto una funzione che vi permette di visualizzare la vostra pagina HTML direttamente nel browser web una volta ricevuto il token.

Continuate a leggere per tutti i dettagli!

HDI Connect to GitHub con OAuth 2.0

Prerequisiti

Prima di ottenere un token dall’API di Google, il primo passo è ottenere le credenziali del client OAuth 2.0 dalla Google API Console. In questo modo si stabilisce una relazione di fiducia tra l’applicazione e l’API di Google. La fiducia è unidirezionale: l’applicazione si fida dell’API di Google, non viceversa.

Questo tutorial di Google è una risorsa eccellente per capire come utilizzare OAuth 2.0 per accedere alle API di Google.

La registrazione integra l’applicazione con la Google API Console e stabilisce le informazioni da utilizzare per ottenere i token, tra cui:

  • un ID cliente: Un identificatore unico assegnato da Google API Console.
  • un URI/URL di reindirizzamento: Uno o più endpoint in cui l’applicazione riceverà le risposte da Google API Console.
  • un Client Secret: una chiave segreta che l’applicazione utilizza per autenticarsi con Google API Console.

ottenere un token di accesso da Google

È sufficiente utilizzare il comando New OAuth2 provider o le classi cs.NetKit.OAuth2Provider con l’attributo name uguale a “Google” per ottenere il token.

cs.NetKit.OAuth2Provider con tutte le informazioni fornite durante la registrazione:

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()

ottenere un token di accesso da altri server

È possibile utilizzare the New OAuth2 provider o la classe cs.NetKit.OAuth2Provider con server OAuth 2.0 diversi da Microsoft o Google. È sufficiente compilare l’authenticateURI e il tokenURI con gli URI specifici del proprio server OAuth 2.0 e verificare che il codice di autorizzazione restituito sia in formato JSON.

Ad esempio, è possibile collegare l’applicazione a GitHub con il codice seguente:

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()

Personalizzare le pagine dei risultati

Per visualizzare la propria pagina al termine dell’autenticazione, è necessario utilizzare gli attributi authenticationPage e authenticationErrorPage:

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

Ci impegniamo costantemente per fornire ai nostri utenti la migliore esperienza possibile e vi invitiamo a condividere i vostri pensieri e feedback sul forum di 4D. Il vostro feedback ci aiuta a comprendere meglio le vostre esigenze e a migliorare continuamente i nostri prodotti e servizi.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.