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

ASP.NET Core 6 Web API实现Xero账户授权及Swagger重定向报错咨询

ASP.NET Core 6 Web API 实现Xero账户授权可行性及Swagger跳转错误解决

可行性说明

完全可行。Xero基于OAuth 2.0协议提供账户授权能力,ASP.NET Core 6可通过两种方式对接:

  • 使用官方Xero.NET SDK,它封装了OAuth 2.0授权流程、Token管理等逻辑,能快速完成Xero API对接。
  • 自行实现OAuth 2.0流程:先注册Xero开发者应用获取Client ID和Client Secret,再配置授权请求、回调处理、Token获取与刷新逻辑,ASP.NET Core自带的Microsoft.AspNetCore.Authentication.OAuth包可提供基础支持。

Swagger跳转"Failed to fetch"错误解决

针对你遇到的错误,逐一排查修复:

1. 修正CORS配置

Swagger页面(通常为https://localhost:<端口号>/swagger)属于跨域请求,需在ASP.NET Core中配置允许该域名的跨域访问:

// Program.cs
var builder = WebApplication.CreateBuilder(args);

// 添加CORS服务
builder.Services.AddCors(options =>
{
    options.AddPolicy("SwaggerCors", policy =>
    {
        policy.WithOrigins("https://localhost:<你的Swagger端口>") // 替换为实际Swagger地址
              .AllowAnyHeader()
              .AllowAnyMethod()
              .AllowCredentials(); // 若需携带Cookie等凭证则启用
    });
});

// 注册其他服务...

var app = builder.Build();

// 在UseRouting之后、UseAuthorization之前启用CORS
app.UseCors("SwaggerCors");

// 其他中间件配置...
app.UseSwagger();
app.UseSwaggerUI();

2. 确保授权URL协议正确

Xero授权端点仅支持HTTPS,确认你生成的授权URL为https://login.xero.com/identity/connect/authorize,绝对不能使用HTTP。检查代码中拼接的授权地址是否存在协议错误。

3. 调整Swagger跳转方式

不要通过前端fetch请求触发重定向,这会触发CORS预检查导致错误。正确做法:

  • 后端API直接返回重定向响应:
    [HttpGet("authorize-xero")]
    public IActionResult RedirectToXeroAuth()
    {
        var authorizeUrl = "https://login.xero.com/identity/connect/authorize?client_id=你的ClientID&response_type=code&redirect_uri=你的回调地址&scope=openid profile email accounting.transactions";
        return Redirect(authorizeUrl);
    }
    
  • 在Swagger中直接添加外部链接(通过SwaggerUI配置),让用户点击跳转,避免跨域请求:
    app.UseSwaggerUI(options =>
    {
        options.SwaggerEndpoint("/swagger/v1/swagger.json", "Xero Auth API V1");
        options.InjectJavascript("/swagger-ui/custom.js"); // 通过自定义JS添加跳转链接
    });
    

4. 排查网络问题

确认开发环境可正常访问https://login.xero.com,检查防火墙、代理设置是否拦截请求,可直接在浏览器中访问Xero授权地址验证网络连通性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 15:47:21