AADSTS54005: Код авторизации OAuth2 уже погашен, повторите попытку с новым действительным кодом или используйте существующий токен обновления - PullRequest
1 голос
/ 21 марта 2019

xamarin формы с офисной аутентификацией 365 аутентификация работает нормально, но в последнее время я получаю это сообщение об ошибке:

AADSTS54005: Код авторизации OAuth2 уже погашен, повторите попытку с новым действительным кодом или используйте существующий токен обновления.

с некоторыми исследованиями я обнаружил, что мне нужно обновить токен. ->

https://support.workspace365.net/hc/en-us/articles/360010259114--RESOLVED-Technical-issue-Workspace-365 вопрос в том, как обновить токен, может кто-нибудь направить меня.

Спасибо

Это мой код:

    public async Task<AuthenticationResult> Authenticate(string authority, string resource, string clientId, string returnUri)
    {
        AuthenticationResult authResult = null;
        try
        {
            var authContext = new AuthenticationContext(authority);
            if (authContext.TokenCache.ReadItems().Any())
                authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
            var uri = new Uri(returnUri);
            PlatformParameters platformParams = null;

Android

            platformParams = new PlatformParameters((Android.App.Activity)Forms.Context);

1019 * ИОС *

            Device.BeginInvokeOnMainThread(() =>
            {
                UIViewController controller = new UIViewController();
                controller = UIApplication.SharedApplication.KeyWindow.RootViewController;
                platformParams = new PlatformParameters(controller);
            });


            UserDialogs.Instance.HideLoading();

Authresult необходимо вернуть токен, чтобы я мог использовать его из аутентификации Office 365, но вместо этого я получаю сообщение AADSTS54005: OAuth2 Authorization ...

            authResult = await authContext.AcquireTokenAsync(resource, clientId, uri, platformParams);
            authContext.TokenCache.Clear();

        }
        catch (Exception e)
        {
            Console.WriteLine("Execption : " + e.Message);
        }

        return authResult;
    }

любая помощь будет оценена Спасибо

...