【问题标题】:Intuit Partner Platform - what return statuses should we be looking for to check if an OAuth token is still valid?Intuit 合作伙伴平台 - 我们应该寻找哪些返回状态来检查 OAuth 令牌是否仍然有效?
【发布时间】:2012-12-11 05:17:04
【问题描述】:

在通过 Intuit 技术审查时,Intuit 表示我们需要在我们的应用程序中进行检查,以确保 OAuth 令牌仍然有效。

到目前为止,我发现当 OAuth 令牌无效时可能会发生至少两个不同的返回码 - 是否不止两个?我们应该寻找哪些其他返回码?

目前发现:

  • HTTP 401 未经授权
  • HTTP 200 正常 + 错误代码 3200

【问题讨论】:

    标签: oauth intuit-partner-platform


    【解决方案1】:

    唯一应该使用的 HTTP 状态是 401 Unauthorized。任何其他响应状态要么是错误,要么是 Intuit 方面规范的错误实现。

    令牌可能是有效的,只是不适用于您尝试访问的资源。在这些情况下,务实并真正为 API 使用者指定为什么他们会得到 401 是很好的。Intuit 可能会用 200 + 错误代码覆盖这种情况。但这只是一个猜测。

    【讨论】:

    • 返回 200 OK 的端点是 Intuit 的通用“获取可用公司”端点,它基本上应该可以随时用于任何令牌。我们将看看他们对此有何评论。谢谢!
    • 更新:Intuit 已经回复了我与他们一起提交的支持票,并指出这是他们的一个错误 - 他们应该总是返回 401 Unauthorized,但他们不是。他们已提交错误报告并将修复此问题。
    【解决方案2】:

    基思, 请记住,您不必检查令牌是否无效,您应该始终知道。如果客户断开连接,那么他们将被发送到具有领域的 OpenId 端点,您可以在其中找到它们并断开它们。

    或者,如果你断开连接,那么你知道它是无效的。

    但是是的,这是一个错误,它应该只是未经授权的。我只是想指出,在正常用例下调用之前,您应该知道状态。

    震动

    【讨论】:

    • 嗨 Jarred - 如果我们不使用 OpenID 怎么办?这适用于仅连接到 QuickBooks 的应用程序 - 我们绝对没有实现任何 OpenID 组件,Intuit 也没有表示我们需要这样做。
    • 如果您只是连接到 QuickBooks,则不需要,如果您在 Appcenter 上列出。在任何一种情况下,当用户访问 Appcenter 并断开连接时,我们都会使用包含领域的 OpenId 断言将它们传回给您。 IE。如果你需要它就在那里。
    • 谢谢,这很有帮助!所以确认一下 - 可以使用 OpenID 来检测这一点,即使我们没有在 AppCenter 上列出。
    • 是的,这是正确的。列出时需要 OpenId,因为我们希望 SSO 在从 AppCenter 注册应用程序时改善客户首次使用体验。但它对于非 Appcenter 应用还有其他用途。
    猜你喜欢
    • 1970-01-01
    • 2013-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多