Śledziłem Quickstart na stronie dokumentacji i posiadam działającą konfigurację trzech usług (IdentityServer, jedna usługa Api, jedna aplikacja ASPV MVC) przy użyciu IdentityServer do uwierzytelniania.IdentityServer4 - Używanie odświeżania tokenów po wykonaniu Quickstart for Hybrid MVC
Wszystko działa idealnie (logowanie, logowanie, autoryzacja itp.) Aż do 1 godziny po wygaśnięciu access_token. W tym momencie aplikacja MVC rozpoczyna odbiór (poprawnie) 401 z usługi API (ponieważ token wygasł). W tym momencie wiem, że powinienem użyć parametru refresh_token, aby uzyskać nowy access_token.
Szukałem mechanizmu, który automatycznie odświeżył access_token i natknął się na to: https://github.com/mderriey/TokenRenewal/blob/master/src/MvcClient/Startup.cs (od this answer). Próbowałem go użyć, ale nie zadziałało (TokenEndpointResponse
był pusty, mimo że uwierzytelnienie się powiodło).
Rozumiem, jak używać refresh_token
, aby uzyskać nowy access_token
, ale po tym, jak go mam, jak mam go wstawić z powrotem do cookie, aby przyszłe żądanie miało dostęp do nowych tokenów?
w próbce RenewTokens McvHybrid są wywoływane tylko ręcznie (poprzez kliknięcie linku). Czy znasz przykład, kiedy odświeżanie tokena jest wywoływane, gdy dojdzie do wygaśnięcia tokena dostępu? –
Możesz łatwo rzucić powyższy kod do jakiegoś oprogramowania pośredniego, które jest następnie rejestrowane w twoim potoku przed MVC. – LugTread
@LugTread Nie przypuszczam, że miałbyś jakiś przykład tego? Jestem nowicjuszem dla MVC w .NET Core i nigdy nie napisałem middleware, szukam teraz tego, ale jeśli zrobiłeś coś podobnego i masz przykład kodu, który byłby świetny. Dziękuję Ci. – bgs264