【问题标题】:Xero Authorization Cancel in ASP.NETASP.NET 中的 Xero 授权取消
【发布时间】:2021-04-21 11:05:47
【问题描述】:

如何使用 asp.net 处理 Xero 回调错误

【问题讨论】:

    标签: asp.net asp.net-mvc asp.net-core asp.net-web-api xero-api


    【解决方案1】:

    看起来您的重定向 URI 缺少 localhost 端口号可能存在​​问题。我建议检查您的重定向 URI 以确保它与您正在运行项目的本地主机端口匹配。

    如果端口正确,当您在用户取消授权后尝试使用 Xero 客户端请求访问令牌时,您很可能会遇到不同的异常:

    var xeroToken = (XeroOAuth2Token)await client.RequestAccessTokenAsync(code);
    

    ( ArgumentException: Parameter is required (Parameter 'code') )

    这是因为当授权被取消时,您不会在请求中收到代码参数,而是在回调中添加了一个错误参数。 (error=access_denied)

    您可以通过检查回调方法中的错误参数来处理此错误。

    var error = HttpContext.Request.Query["error"].ToString();
    if (error == "access_denied")
    {
        //handle the error - redirect back to main/login screen with a message?
    }
    

    希望这个回答对你有帮助。

    【讨论】:

      【解决方案2】:

      您是否阅读过 Xero-NetStandard 存储库的自述文件?

      首先您需要通过授权 URL 发送用户

      return Redirect(client.BuildLoginUri());

      然后,当它们返回时,您将临时 code 交换为有效的 token set,其中将包含 access_tokenrefresh_token

      https://github.com/XeroAPI/Xero-NetStandard

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-25
        • 2021-07-06
        • 2013-10-02
        相关资源
        最近更新 更多