Quando si utilizza l’autenticazione OAuth 2.0 con 4D NetKit, è necessario definire un URI di reindirizzamento per indicare dove il server OAuth 2.0 deve restituire il risultato dell’autenticazione. Con 4D 20 R9, è ora possibile utilizzare l’indirizzo e le porte del server web host per recuperare le risposte di autenticazione. Questo miglioramento semplifica il processo di autenticazione, evita i conflitti tra le porte e migliora la sicurezza.
$credential:={}
$credential.name:="Microsoft" // or "Google
$credential.permission:="signedIn"
$credential.clientId:="bbbxxx"
$credential.redirectURI:="http://127.0.0.1:80/authorize/"
var $provider:=cs.NetKit.OAuth2Provider.new($credential)
Quando si usa cs. NetKit. OAuth2Provider. new( $credential), 4D NetKit determina se utilizzare il server web host o il server web del componente 4D NetKit in base all’URI di reindirizzamento specificato.
-
Se la porta dell’URI di reindirizzamento corrisponde alla porta del server web host, 4D NetKit utilizzerà automaticamente il server web host per recuperare le risposte di autenticazione.
-
Se la porta viene omessa, vengono utilizzate le porte standard:
-
Il server web host viene utilizzato se il database host è configurato con la porta predefinita (porta 80 per HTTP e porta 443 per HTTPS).
-
Altrimenti, viene utilizzato il server web di 4D NetKit.
-
-
In tutti gli altri casi, 4D NetKit utilizza per default il proprio server web interno.
Esempio di RedirectURI basato sulla configurazione del server Web host con porta HTTP = 80
-
Utilizzando la porta host 4D → viene utilizzato il server host 4D
$param.redirectURI:="http://127.0.0.1:80/authorize/"
-
Omissione della porta, la porta HTTP predefinita è 80 → Viene utilizzato il server host 4D
$param.redirectURI:="http://127.0.0.1/authorize/"
-
Utilizzo di una porta personalizzata → viene utilizzato il server4D NetKit
$param.redirectURI:="http://127.0.0.1:50993/authorize/"
Gestione delle risposte di autenticazione con un gestore HTTP
Se per l’autenticazione viene utilizzato il server web host, gli sviluppatori devono aggiungere un gestore HTTP nel database host. Questo assicura che le risposte di autenticazione siano ricevute ed elaborate correttamente.
Quando permission=”signedIn” e 4D NetKit utilizza il server web host, il seguente gestore deve essere aggiunto al file Project/Sources/HTTPHandlers.json:
[
{
"class": "NetKit.OAuth2Authorization",
"method": "getResponse",
"regexPattern": "/authorize",
"verbi": "get"
}
]
Conclusione
Utilizzando i nuovi miglioramenti dell’autenticazione OAuth 2.0 in 4D NetKit, gli sviluppatori possono semplificare il processo di autenticazione, garantendo la compatibilità con la configurazione del server web esistente.