Introduktion
När man använder en kedja som gör flera API-anrop med en autentiseringstoken som löper ut, till exempel de som används av Workivas API:er, finns det en risk att token löper ut innan alla anrop har initierats. Om detta händer kommer alla återstående API-anrop att misslyckas. Att autentisera sig på nytt före varje API-anrop skulle kunna förhindra detta problem, men det skulle lägga till ytterligare overhead i kedjan.
Den här guiden förklarar hur du implementerar mallen Refresh OAuth Tokens Dynamically. Mallen är avsedd för kedjor som använder HTTP Connector för att göra API-anrop där API:et kräver autentisering via en token som har ett utgångsdatum och en utgångstid. Även om det är byggt för Workiva API kan det anpassas för andra API:er som använder liknande autentiseringsmetoder.
Kedjan innehåller en mekanism för att automatiskt uppdatera token när den är nära att löpa ut. Den subtraherar 2 minuter (detta värde kan justeras) från den befintliga tokenens utgångstid som en buffert och jämför den med aktuell tid. Om den aktuella tiden är senare än den justerade utgångstiden utlöser kedjan omautentiseringsprocessen för att generera en ny token, som sedan matas ut av kedjan. Om token fortfarande är giltig hoppar kedjan över omautentiseringen och matar helt enkelt ut den befintliga token.
Obs: Om ingen token skickas till den här kedjan kommer den automatiskt att gå igenom autentiseringsprocessen och generera en, vilket innebär att den här kedjan också kan användas för vår inledande (första) autentiseringsbegäran tillsammans med eventuella efterföljande.
Förkunskapskrav
Kedjor
Följande anslutningar måste vara aktiverade och konfigurerade i din arbetsyta:
Mallen innehåller följande Workspace-variabler som är utformade för användning med Workiva API, ändra och konfigurera efter behov:
- wsv_platform (den app där din arbetsyta finns, för USA använd "app", EU/EMEA använd "eu", APAC använd "apac")
- wsv_Client ID (klient-ID för ditt API-anslag)
- wsv_Client Secret (hemligheten för ditt API-anslag)
Distribuera kedjan
Kedjemallen "Refresh OAuth Tokens Dynamically" finns i avsnittet Workiva Chains på skärmen Mallar.
Så här hittar du den:
- I Chain Builder går du till fliken Mallar
- Välj Workiva Chains från menyn högst upp
- Sök efter Refresh OAuth Tokens Dynamically Chain Template längst upp till höger och öppna mallen
- När du har hittat mallen klickar du på Ny kedja för att distribuera den till din arbetsyta.
- Konfigurera mallen för din arbetsyta och ditt API.
- Kom ihåg att publicera kedjan när den är konfigurerad och om du vill använda den som den är utan att behöva göra några ändringar.
Obs: Detaljerade anvisningar om hur du skapar en kedja från en mall finns i artikeln Skapa och hantera kedjor.
Konfigurera mallen
Den här mallen kan läggas till i en befintlig kedja med kommandot Run Chain och fungerar utan några ytterligare ändringar för Workiva API. Se här för instruktioner om hur du använder händelsekommandot "Run Chain".
Ett exempel på användningsområde för denna kedja skulle kunna vara inom en befintlig kommandogrupp som använder iteration. Denna kedja kan köras från ett händelsekommando "Run Chain" med en egen gren i gruppen, som ställer in dynamiska kedjevariabler med kedjeutgångarna från denna kedja.
I kommandot "Run Chain" kan du använda din dynamiska kedjevariabel för att se till att det alltid är den senaste token som kontrolleras.
Du måste sedan uppdatera samma dynamiska kedjevariabel med resultatet från kommandot "Kör kedja".
Du kan sedan använda samma dynamiska kedjevariabler i alla HTTP-begärandekommandon som du gör
Uppdatera bufferttiden
Som standard lägger denna mall till en bufferttid på 2 minuter till den befintliga tokenens utgångstid för att undvika eventuella timingproblem. Du kan ändra detta i villkorskommandot "Check if expiry date time is close".
När du har redigerat det här kommandot dubbelklickar du på den första variabeln "Advanced Query - convert epoch timestamp - timestamp" i villkoren.
Du kan sedan justera beloppets värde som du vill.