Как использовать refresh_token для получения нового токена доступа с сервера идентификации в клиенте Xamarin.Forms?
Я следовал учебному пособию https://sinclairinat0r.com/2018/12/09/secure-data-access-with-identityserver4-and-xamarin-forms и создал мобильное приложение xamarin форм с аутентификацией на IS4.Я установил время жизни токена доступа на несколько минут.После истечения срока действия маркера доступа приложение не сможет получить доступ к авторизованным конечным точкам.У меня есть refresh_token, но я не знаю, как использовать его для получения нового токена доступа с сервера идентификации.
Клиент, указанный в конфигурации is4:
new Client()
{
ClientId = "xamarin-client",
ClientName = "Xamarin client",
AllowedGrantTypes = { "authorization_code" },
AllowedScopes = {"openid", "profile", "values-api" },
AllowAccessTokensViaBrowser = true,
AllowOfflineAccess = true,
AlwaysIncludeUserClaimsInIdToken = true,
RequirePkce = true,
RequireClientSecret = false,
RedirectUris = { "https://iglooidentityserver.azurewebsites.net/grants" },
AccessTokenLifetime = 180,
}
Аутентификатор, который я использовал:
var oAuth = new OAuth2AuthenticatorEx(
"xamarin-client",
"offline_access values-api",
new Uri("https://iglooidentityserver.azurewebsites.net/connect/authorize"),
new Uri("https://iglooidentityserver.azurewebsites.net/grants"))
{
AccessTokenUrl = new Uri("https://iglooidentityserver.azurewebsites.net/connect/token"),
ShouldEncounterOnPageLoading = false,
};
var presenter = new OAuthLoginPresenter();
presenter.Completed += Presenter_Completed;
presenter.Login(oAuth);