Wprowadzenie
W przypadku korzystania z łańcucha, który wykonuje wiele wywołań API z wygasającym tokenem uwierzytelniającym, takim jak te używane przez interfejsy API Workiva, istnieje ryzyko, że token może wygasnąć przed zainicjowaniem wszystkich wywołań. Jeśli tak się stanie, wszystkie pozostałe wywołania API zakończą się niepowodzeniem. Ponowne uwierzytelnianie przed każdym wywołaniem API mogłoby zapobiec temu problemowi, ale spowodowałoby to dodatkowy narzut na łańcuch.
W tym przewodniku wyjaśniono, jak zaimplementować szablon Refresh OAuth Tokens Dynamically. Szablon jest przeznaczony dla łańcuchów, które używają konektora HTTP do wykonywania wywołań API, gdzie API wymaga uwierzytelnienia za pomocą tokena, który ma datę i godzinę wygaśnięcia. Chociaż jest on zbudowany dla interfejsu API Workiva, można go dostosować do innych interfejsów API, które używają podobnych metod uwierzytelniania.
Łańcuch zawiera mechanizm automatycznego odświeżania tokena, gdy jest on bliski wygaśnięcia. Odejmuje 2 minuty (wartość ta może zostać dostosowana) od czasu wygaśnięcia istniejącego tokena jako bufor i porównuje go z aktualnym czasem. Jeśli aktualny czas jest późniejszy niż dostosowany czas wygaśnięcia, łańcuch uruchamia proces ponownego uwierzytelnienia w celu wygenerowania nowego tokena, który jest następnie wyprowadzany przez łańcuch. Jeśli token jest nadal ważny, łańcuch pomija ponowne uwierzytelnienie i po prostu wysyła istniejący token.
Uwaga: Jeśli żaden token nie zostanie przekazany do tego łańcucha, automatycznie przejdzie on przez proces uwierzytelniania i wygeneruje go, co oznacza, że ten łańcuch może być również użyty do naszego początkowego (pierwszego) żądania uwierzytelnienia, a także do wszystkich kolejnych.
Wymagania wstępne
Chains
Następujące łączniki muszą być włączone i skonfigurowane w Twojej przestrzeni roboczej:
Szablon zawiera następujące zmienne Workspace zaprojektowane do użytku z Workiva API, zmień i skonfiguruj odpowiednio:
- wsv_platform (miejsce aplikacji, w którym znajduje się Twój obszar roboczy, dla USA użyj "app", EU/EMEA użyj "eu", APAC użyj "apac")
- wsv_Client ID (identyfikator klienta twojego grantu API)
- wsv_Client Secret (sekret twojego grantu API)
Rozmieść łańcuch
Szablon łańcucha "Dynamicznie odświeżaj tokeny OAuth" znajduje się w sekcji Łańcuchy Workiva na ekranie Szablony.
Oto jak ją znaleźć:
- W programie Chain Builder przejdź do zakładki Szablony
- Wybierz Workiva Chains z menu na górze strony
- Wyszukaj Refresh OAuth Tokens Dynamically Chain Template w prawym górnym rogu i otwórz szablon
- Po zlokalizowaniu szablonu kliknij przycisk Nowy łańcuch, aby wdrożyć go w swojej przestrzeni roboczej.
- Skonfiguruj szablon dla swojego obszaru roboczego i interfejsu API.
- Pamiętaj, aby opublikować łańcuch po jego skonfigurowaniu i jeśli chcesz go używać w obecnej formie bez konieczności wprowadzania modyfikacji.
Uwaga: Aby uzyskać szczegółowe instrukcje dotyczące tworzenia łańcucha z szablonu, zapoznaj się z artykułem Tworzenie łańcuchów i zarządzanie nimi.
Skonfiguruj szablon
Szablon ten można dodać do istniejącego łańcucha za pomocą polecenia Run Chain i będzie on działał bez żadnych dodatkowych modyfikacji interfejsu API Workiva. Zobacz tutaj instrukcje dotyczące korzystania z polecenia zdarzenia "Run Chain".
Przykładem zastosowania tego łańcucha może być istniejąca grupa poleceń wykorzystująca iterację. Łańcuch ten można uruchomić za pomocą polecenia zdarzenia "Run Chain" z własną gałęzią w grupie, ustawiając dynamiczne zmienne łańcucha z wyjściami łańcucha z tego łańcucha.
W ramach polecenia "Run Chain" możesz użyć dynamicznej zmiennej łańcuchowej, aby upewnić się, że zawsze sprawdzany jest najnowszy token.
Następnie musisz zaktualizować tę samą dynamiczną zmienną łańcuchową danymi wyjściowymi z polecenia "Run Chain".
Następnie możesz użyć tych samych dynamicznych zmiennych łańcuchowych w dowolnym poleceniu żądania HTTP, które wykonasz
Zaktualizuj czas buforowania
Domyślnie szablon ten dodaje 2 minuty bufora do czasu wygaśnięcia istniejącego tokena, aby uniknąć problemów z synchronizacją. Możesz to zmienić w poleceniu warunkowym "Sprawdź, czy czas wygaśnięcia jest bliski".
Po edycji tego polecenia kliknij dwukrotnie pierwszą zmienną "Advanced Query - convert epoch timestamp - timestamp" w warunkach.
Następnie możesz dostosować wartość kwoty zgodnie z własnymi preferencjami.