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

dw1jzc5e  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(147)

我试图找出授权码授权是否允许服务器使用POST调用redirect_uri。
根据我的经验,大多数授权服务器都使用GET,但我偶然发现了一个使用POST调用redirect_uri的案例(Acuity Scheduling API)。
这是违反规范还是预期的?
我查阅了OAuth2规范和几个在线来源。我找不到一个明确的来源来证实这一点。

vxqlmq5t

vxqlmq5t1#

正如Tore所描述的,这是规范中的一个有效选项。要实现此行为,您应该使用参数response_mode=form_post启动授权流。这将指示授权服务器返回Tore描述的HTML表单。
此行为包含在两个规范中:

ryoqjall

ryoqjall2#

这是完全好的,通常是首选的方式发布授权代码到客户端。它是如何完成的,是授权服务器返回一个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,而不是授权服务器。

相关问题