4D Netkit: Vylepšení autorizace OAuth2

Automaticky přeloženo z Deepl

Díky 4D v19 R3 je připojení aplikace k rozhraní Microsoft Graph API prostřednictvím OAuth 2.0 pomocí 4D NetKit neuvěřitelně pohodlné.

Nyní, s verzí 4D v20 R2, můžete bez problémů získat token OAuth 2.0 pro Google API nebo jiné servery OAuth 2.0. A co víc, abychom ještě více zlepšili integraci tohoto procesu ověřování do vaší aplikace, zavedli jsme funkci, která vám umožní zobrazit stránku HTML přímo ve webovém prohlížeči, jakmile token obdržíte.

Čtěte dále a dozvíte se všechny podrobnosti!

Připojení HDI ke službě GitHub pomocí protokolu OAuth 2.0

Předpoklady

Před získáním tokenu z rozhraní Google API je prvním krokem získání pověření klienta OAuth 2.0 z konzoly Google API Console. Tím se vytvoří vztah důvěry mezi vaší aplikací a rozhraním Google API. Důvěra je jednosměrná: vaše aplikace důvěřuje rozhraní Google API, nikoli naopak.

Tento návod od společnosti Google je vynikajícím zdrojem informací o tom, jak používat OAuth 2.0 pro přístup k rozhraním Google API.

Registrace integruje vaši aplikaci s konzolou Google API Console a stanoví informace, které používá k získání tokenů, včetně:

  • ID klienta: Jedinečný identifikátor přidělený konzolou Google API Console.
  • URI/URL přesměrování: Jeden nebo více koncových bodů, na které bude vaše aplikace přijímat odpovědi z Google API Console.
  • a Client Secret: Tajný klíč, který vaše aplikace používá k ověření s Google API Console.

Získání přístupového tokenu od společnosti Google

Stačí použít příkaz New OAuth2 provider příkaz nebo třídu cs.NetKit.OAuth2Provider s atributem name rovným „Google“, abyste získali svůj token.

cs.NetKit.OAuth2Provider třídu se všemi informacemi uvedenými při registraci:

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

Získání přístupového tokenu z jiných serverů

Můžete použít the New OAuth2 provider příkaz nebo třídu cs.NetKit.OAuth2Provider s jinými servery OAuth 2.0 než Microsoft nebo Google. Stačí vyplnit authenticateURI a tokenURI konkrétními URI vašeho serveru OAuth 2.0 a ověřit, že vrácený autorizační kód je ve formátu JSON.

Svou aplikaci můžete například připojit ke službě GitHub pomocí níže uvedeného kódu:

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

Vlastní výsledné stránky

Chcete-li na konci ověření zobrazit vlastní stránku, musíte použít atributy authenticationPage a authenticationErrorPage:

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

Neustále se snažíme poskytovat našim uživatelům co nejlepší služby a vyzýváme vás, abyste se podělili o své názory a zpětnou vazbu na fóru 4D. Vaše zpětná vazba nám pomáhá lépe porozumět vašim potřebám a neustále zlepšovat naše produkty a služby.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.