Java OAuth2提供程序实现|自定义错误

时间:2015-09-21 05:56:13

标签: java oauth custom-errors

我已经搜索了这个问题的答案,现在我正在接触社区。

  • 我尝试在Java中构建OAuth2访问令牌端点。
  • 我将实现资源所有者凭据授予类型以返回访问令牌。 (指定最终用户的用户名/密码以获取访问令牌)
  • 在验证用户凭据期间,许多规则可能会阻止用户访问我的网络服务,例如用户帐户被锁定。
  • OAuth2 RFC表示必须按如下方式返回错误:
    { "error":"invalid_request", "error_description":"description", "error_uri":"some_link" }
  • 我的理解是,OAuth规范列出了标准错误代码,您应该避免在响应中使用自定义error代码,例如{"error":"account_locked"};但是,我已经看到一些API提供商这样做了。
  • 我需要此API的客户端能够读取响应中的错误代码,以了解帐户何时被锁定。 (或其他特定情况)

    现在我的问题是:
  • 这里有没有人有建议如何实施这种情况的经验?
  • 我应该实现自定义错误代码吗?
  • 我是否应该忘记OAuth2规范,只需构建一个执行相同操作的/token端点:验证用户身份,生成令牌并返回API的标准错误响应?

1 个答案:

答案 0 :(得分:0)

  1. 我没有完全相同的场景。但我不会使用自定义错误代码,因为它违反了OAuth2。相反,我可以考虑在这种情况下使用“error_description”作为错误代码字段;或者我可以添加biz_error_code字段。

  2. 是的,您可以忘记OAuth2,它在http状态代码和error_code方面不灵活。但是,您最终将使用OAuth2的“密码”grant_type构建非常类似的东西,例如访问令牌和刷新令牌。