4D Netkit: Erweiterung der OAuth2-Autorisierung

Mit 4D v19 R3 ist die Verbindung Ihrer Anwendung mit der Microsoft Graph API über OAuth 2.0 mit 4D NetKit sehr viel einfacher geworden.

Mit 4D v20 R2 können Sie nun nahtlos ein OAuth 2.0 Token für Google API oder andere OAuth 2.0 Server erhalten. Und um die Integration dieses Authentifizierungsprozesses in Ihre Anwendung noch weiter zu verbessern, haben wir eine Funktion eingeführt, mit der Sie Ihre HTML-Seite direkt in Ihrem Webbrowser anzeigen können, sobald das Token empfangen wurde.

Lesen Sie weiter, um alle Details zu erfahren.

HDI Connect zu GitHub mit OAuth 2.0

Voraussetzungen

Bevor Sie ein Token von der Google-API erhalten, müssen Sie zunächst OAuth 2.0-Client-Anmeldeinformationen von der Google-API-Konsole abrufen. Dadurch wird eine „Vertrauensbeziehung“ zwischen Ihrer Anwendung und der Google-API hergestellt. Das Vertrauen ist unidirektional: Ihre Anwendung vertraut der Google-API, nicht andersherum.

Dieses Tutorial von Google ist eine hervorragende Ressource, um zu verstehen, wie man OAuth 2.0 für den Zugriff auf Google APIs verwendet.

Die Registrierung integriert Ihre Anwendung in die Google API Console und legt die Informationen fest, die zum Abrufen von Token verwendet werden, darunter:

  • eine Client-ID: Ein eindeutiger Bezeichner, der von der Google API-Konsole zugewiesen wird.
  • eine Redirect URI/URL: Ein oder mehrere Endpunkte, an denen Ihre Anwendung Antworten von der Google API Console erhält.
  • ein Client Secret: Ein geheimer Schlüssel, den Ihre App zur Authentifizierung bei der Google API Console verwendet.

Abrufen eines Zugriffstokens von Google

Sie müssen nur den New OAuth2 provider oder die Klasse cs.NetKit.OAuth2Provider mit dem Attributname gleich „Google“ verwenden, um Ihr Token zu erhalten.

cs.NetKit.OAuth2Provider mit allen Informationen, die Sie bei der Registrierung angegeben haben:

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

Abrufen eines Zugangstokens von anderen Servern

Sie können den the New OAuth2 provider oder die Klasse cs.NetKit.OAuth2Provider mit anderen OAuth 2.0-Servern als Microsoft oder Google verwenden. Sie müssen lediglich die authenticateURI und die tokenURI mit den spezifischen URIs Ihres OAuth 2.0-Servers füllen und überprüfen. Es muss der zurückgegebene Autorisierungscode im JSON-Format vorliegen.

Sie können Ihre Anwendung zum Beispiel mit dem unten stehenden Code mit GitHub verbinden:

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

Anpassen der Ergebnisseiten

Um Ihre eigene Seite am Ende der Authentifizierung anzuzeigen, müssen Sie die Attribute authenticationPage und authenticationErrorPage verwenden:

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

Wir arbeiten stets daran, unseren Nutzern die bestmögliche Erfahrung zu bieten. Ihr Feedback hilft uns, Ihre Bedürfnisse besser zu verstehen und unsere Produkte und Dienstleistungen kontinuierlich zu verbessern.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.