首页 > 解决方案 > AADSTS54005:OAuth2 授权代码已兑换,请使用新的有效代码重试或使用现有的刷新令牌

问题描述

带有 Office 365 身份验证的 xamarin 表单身份验证工作正常,但最近我收到此错误消息:

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;

安卓

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

IOS

            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;
    }

任何帮助将不胜感激谢谢

标签: xamarin.formsoffice365adal

解决方案


推荐阅读