1

我有一个符合 OAuth2.0 和 RFC 6749 的应用程序。

我现在需要扩展行为,以便新的 RP 将调用我的/auth端点,并且它期待包含我的 auth_ref 的响应,因此我认为我应该在请求中application/x-www-form-urlencoded使用而不是默认格式。application/json这有两个原因:

  1. 如果请求来自 Web 浏览器,我不需要使用登录页面响应更改我现有的 http Web 重定向行为
  2. 我可以扩展系统以迎合新的 RP,该 RP 需要包含 auth_ref 的 JSON 响应等

Q1。这个规范符合吗?根据我对RFC的理解

Q2。我正在考虑的另一种方法是只公开一个不同的端点/authz

Q3。还要考虑在同一/auth端点上向请求添加新参数的可能性。这也会变得不符合规范吗?还是将其视为规范的扩展?如果我扩展它有什么影响吗?

提前致谢。

4

1 回答 1

2

如果您/auth是 RFC 6749 中定义的授权端点,则将其用作请求application/json的 Content-Type 是违反规范的。

另一方面,允许在响应中包含附加参数。以下是 RFC 6749 的摘录。您可以example_parameter在响应 JSON 中看到。

 HTTP/1.1 200 OK
 Content-Type: application/json;charset=UTF-8
 Cache-Control: no-store
 Pragma: no-cache

 {
   "access_token":"2YotnFZFEjr1zCsicMWpAA",
   "token_type":"example",
   "expires_in":3600,
   "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA",
   "example_parameter":"example_value"
 }

像上面一样,您可以auth_req在回复中包含。它符合 RFC 6749。

授权端点接受并使用标头application/x-www-form-urlencoded响应。令牌端点接受并使用and响应。有关详细信息,请参阅所有 OAuth 2.0 流程的图表和影片302 FoundLocationapplication/x-www-form-urlencoded200 OKapplication/json

于 2019-08-28T02:29:37.950 回答