4D Netkit: Přizpůsobení rozhraní připojení OAuth 2.0

Automaticky přeloženo z Deepl

Někteří z vás mohou z designových nebo technických důvodů potřebovat spravovat zobrazení rozhraní připojení během připojení OAuth 2.0. Od verze 4D 20 R6 můžete zvolit, aby se rozhraní připojení neotevíralo automaticky ve webovém prohlížeči, ale aby se zobrazilo pomocí authenticateURI tam, kde chcete.

V tomto příspěvku na blogu si projdeme příklad otevření přihlašovacího rozhraní Microsoft v rámci webové oblasti.

HDI Netkit BrowserAutoOpen false

Příklad

V následujícím příkladu si ukážeme, jak otevřít přihlašovací rozhraní Microsoft ve webové oblasti. K tomu je třeba vytvořit formulář s webovou oblastí s názvem „WAConnection“.

Nejprve vytvoříme metodu OAuth2GetToken, která bude řídit zobrazení rozhraní pro připojení ve webové oblasti a čekat na přijetí tokenu. Protože tato metoda bude volána v pracovním serveru, použijeme v ní příkaz CALL FORM příkaz pro zobrazení informací v aktuálním formuláři:

#DECLARE($credential : Object; $CurrentWindows : Integer)

var $OAuth2:=cs.NetKit.OAuth2Provider.new($credential)

// Display the connection page in the web area "WAConnection"
CALL FORM($CurrentWindows; Formula(WA OPEN URL(*; "WAConnection"; $1)); $OAuth2.authenticateURI)

// Wait for the token and save it in the Form.token attribute
CALL FORM($CurrentWindows; Formula(Form.token:=$1); $OAuth2.getToken())

Pak je třeba tuto metodu zavolat v pracovním stroji pomocí příkazu browserAutoOpen atributem false v parametrech pověření:

var $credential:={}
$credential.name:="Microsoft"
$credential.permission:="signedIn"
$credential.clientId:="7008ebf5-xxx"
$credential.redirectURI:="http://127.0.0.1:50993/authorize/"
$credential.scope:="https://graph.microsoft.com/.default"
$credential.accessType:="offline"
$credential.prompt:="select_account"
	
// The display of the connection interface is managed by the developer.
// The browser is not automatically opened
$credential.browserAutoOpen:=False
	
// Call of the OAuth2GetToken method
CALL WORKER("OAuth2Worker"; Formula(OAuth2GetToken($1; $2)); $credential; Current form window)

Pokud tedy otevřete formulář a provedete výše uvedený kód, zobrazí se ve webové oblasti rozhraní pro připojení a webserver 4D bude čekat na token:

Závěr:

Pomocí této funkce mohou vývojáři obejít automatické otevírání webového prohlížeče a získat kontrolu nad zobrazením rozhraní připojení. Tato flexibilita umožňuje vytvořit integrovanější uživatelské prostředí přizpůsobené konkrétním potřebám aplikace.

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.