You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 MAUI中WebAuthenticator返回AccessToken为NULL问题求助

解决.NET 8中WebAuthenticator返回AccessToken为null的问题

针对你升级到.NET8后遇到的WebAuthenticator解析异常问题,以下是几个可行的解决思路:

  • 手动解析回调参数
    由于WebAuthenticator错误地将?access_token识别为参数键,你可以直接从authResult.Properties中提取对应值,或者手动解析回调URI:

    public static async Task<OAuthTokenResponse> Login()
    {
        try
        {
            WebAuthenticatorResult authResult = await WebAuthenticator.Default.AuthenticateAsync(
                new Uri($"{_apiUrl}/auth"),
                new Uri("myscheme://"));
    
            OAuthTokenResponse response = new OAuthTokenResponse();
    
            if (authResult != null)
            {
                response.Success = true;
                // 直接读取异常键值
                if (authResult.Properties.TryGetValue("?access_token", out var token))
                {
                    response.AccessToken = token;
                }
                // 或者手动解析回调URI的Fragment部分
                else if (Uri.TryCreate(authResult.Properties["callbackUri"], UriKind.Absolute, out var callbackUri))
                {
                    var fragmentQuery = callbackUri.Fragment.TrimStart('#');
                    var queryParams = System.Web.HttpUtility.ParseQueryString(fragmentQuery);
                    response.AccessToken = queryParams["access_token"];
                }
            }
    
            return response;              
        }
        catch
        {
            return new OAuthTokenResponse() { Success = false };
        }
    }
    
  • 调整回调URI格式
    检查OAuth服务端的回调地址配置,确保设置为myscheme://(不要带末尾斜杠),避免服务端自动添加多余斜杠导致URI结构异常。也可以尝试将回调URI改为myscheme:(省略双斜杠)测试是否能正常解析。

  • 使用带回调路径的重载方法
    尝试使用指定回调路径的AuthenticateAsync重载,让回调URI结构更规范,减少解析歧义:

    WebAuthenticatorResult authResult = await WebAuthenticator.Default.AuthenticateAsync(
        new Uri($"{_apiUrl}/auth"),
        new Uri("myscheme://callback"));
    

    同时对应调整OAuth服务端的回调地址为myscheme://callback。

  • 排查.NET 8的WebAuthenticator变更
    查看.NET 8官方文档的WebAuthenticator更新说明,确认是否存在解析逻辑的变更或已知bug,若为官方问题可等待修复补丁,或在GitHub提交issue反馈。

内容的提问来源于stack exchange,提问作者Keith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:40:02