Oauth2授权服务器可以使用POST调用redirect_uri吗?

问题描述 投票:0回答:1

我试图查明授权代码授予是否允许服务器使用 POST 调用redirect_uri。

根据我的经验,大多数授权服务器都使用 GET,但我偶然发现了一种情况(Acuity Scheduling API),它使用 POST 调用redirect_uri。

这是否违反规范或符合预期?

我浏览了 OAuth2 规范和几个在线资源。我找不到证实这一点的明确消息来源。

oauth-2.0 oauth
1个回答
0
投票

这是完全可以的,通常是将授权代码发布给客户端的首选方式。授权服务器返回一个带有隐藏 HTML 表单的 HTML 页面。然后使用 JavaScript 自动提交给客户端。

表格看起来像这样:

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
set-cookie: session=s%3A99AF5HUWVOclLXJjEWxKIxUSu-XES_Im.Yr39g9QIZ%2FSnmZ84NsYAxNc... 

<html><head><title>Submit This Form</title></head>
<body onload="javascript:document.forms[0].submit()">
  <form method="post" action="https://example.com/Account/LoggedIn">
    <input type="hidden" name="access_token" value="bMJgE4X4FuL6PNRxxdByKJfruEA..."/>
    <input type="hidden" name="expires_in" value=“3600"/>
    <input type="hidden" name="token_type" value="Bearer"/>
    <input type="hidden" name="state" value="36819"/>
    <input type="hidden" name="id_token" value="eyJ0eXAiOiJKV...XXX...eEA_ZCF4"/>
  </form>
</body></html>

要认识到的重要一点是,实际的 POST 是由浏览器执行的,而不是授权服务器。

© www.soinside.com 2019 - 2024. All rights reserved.