Java OAuth2 提供程序实施 |自定义错误
Java OAuth2 Provider Implementation | Custom Errors
我到处搜索这个问题的答案,现在我正在接触社区。
- 我正在尝试在 Java 中构建 OAuth2 访问令牌端点。
- 我将实施资源所有者凭据授予类型 return 访问令牌。 (指定最终用户的 username/password 以获取访问令牌)
- 在验证用户凭据期间,一些规则可能会阻止用户访问我的网络服务,例如用户帐户被锁定。
- OAuth2 RFC 规定错误必须 return 编辑如下:
{ "error":"invalid_request", "error_description":"description", "error_uri":"some_link" }
- 据我所知,OAuth 规范列出了标准错误代码,您应该避免在响应中使用自定义
error
代码,例如 {"error":"account_locked"}
;但是,我看到一些 API 供应商这样做。
- 我需要此 API 的客户端能够读取响应中的错误代码以了解帐户何时被锁定。 (或其他特定场景)
现在我的问题是:
- 这里有没有人有经验建议应该如何实施这种情况?
- 我应该实施自定义错误代码吗?
- 我是否应该忘记 OAuth2 规范而只构建一个
/token
端点来做同样的事情:验证用户,生成令牌,然后 return 我的 API标准错误响应?
我没有完全相同的情景。但我不会使用自定义错误代码,因为它违反了 OAuth2。相反,在这种情况下,我可能会考虑使用 "error_description" 作为 error-code 字段;或者我可以添加一个 biz_error_code 字段。
是的,你可以忘记OAuth2,它在http状态码和error_code方面并不灵活。但是您最终将构建与 OAuth2 的 'password' grant_type 非常相似的东西,例如访问令牌和刷新令牌。
我到处搜索这个问题的答案,现在我正在接触社区。
- 我正在尝试在 Java 中构建 OAuth2 访问令牌端点。
- 我将实施资源所有者凭据授予类型 return 访问令牌。 (指定最终用户的 username/password 以获取访问令牌)
- 在验证用户凭据期间,一些规则可能会阻止用户访问我的网络服务,例如用户帐户被锁定。
- OAuth2 RFC 规定错误必须 return 编辑如下:
{ "error":"invalid_request", "error_description":"description", "error_uri":"some_link" }
- 据我所知,OAuth 规范列出了标准错误代码,您应该避免在响应中使用自定义
error
代码,例如{"error":"account_locked"}
;但是,我看到一些 API 供应商这样做。 - 我需要此 API 的客户端能够读取响应中的错误代码以了解帐户何时被锁定。 (或其他特定场景)
现在我的问题是: - 这里有没有人有经验建议应该如何实施这种情况?
- 我应该实施自定义错误代码吗?
- 我是否应该忘记 OAuth2 规范而只构建一个
/token
端点来做同样的事情:验证用户,生成令牌,然后 return 我的 API标准错误响应?
我没有完全相同的情景。但我不会使用自定义错误代码,因为它违反了 OAuth2。相反,在这种情况下,我可能会考虑使用 "error_description" 作为 error-code 字段;或者我可以添加一个 biz_error_code 字段。
是的,你可以忘记OAuth2,它在http状态码和error_code方面并不灵活。但是您最终将构建与 OAuth2 的 'password' grant_type 非常相似的东西,例如访问令牌和刷新令牌。