当用户需要批准使用OAuth2进行身份验证的请求时,通常会给出"批准"和"取消"按钮.
当用户点击"取消"时,我应该发送什么?
作为开发人员,当用户点击"取消"时,我会向OAuth服务器发送什么内容以拒绝该请求?
我尝试使用一种grant"拒绝",但这不起作用.我知道要发送什么来获得批准,但似乎无法看到我应该发送什么来让OAuth服务器响应redirect_uri用户取消时的错误.
我已经查看了规范和这篇优秀的OAuth2 Simplified文章,但未能看到它.
注意:我没有在任何地方明确详细说明.是否假设我的应用程序应该自行管理?例如,在这种情况下,我的应用只是发布到自己的应用而不是发布到OAuth2服务器redirect_uri?
{redirect-url}?error=access_denied&error_description=The+user+clicked+deny
Run Code Online (Sandbox Code Playgroud)
如果是这样,这似乎有点奇怪,因为所有实现客户端都必须使用错误代码和原因来构建url.
请参阅https://tools.ietf.org/html/rfc6749#section-4.1.2.1
如果资源所有者拒绝访问请求,或者请求因缺少或无效的重定向URI以外的原因而失败,则授权服务器通过使用"application/x-"将以下参数添加到重定向URI的查询组件来通知客户端. www-form-urlencoded"格式
例:
HTTP/1.1 302 Found
Location: https://client.example.com/cb?error=access_denied&state=xyz
Run Code Online (Sandbox Code Playgroud)
要在PHP中重定向:
<?php
http_redirect("https://client.example.com/cb", array("error" => "access_denied", "state" => "xyz", "error_description" => "The user clicked deny"), true, HTTP_REDIRECT_FOUND);
?>
Run Code Online (Sandbox Code Playgroud)
据我所知,我认为这不是标准的一部分。我认为每个 OAuth2 服务实现者都可以决定他们想要如何做到这一点。
\n\n例如,oauth2orize是一个很好用的 OAuth2 库,被超级流行的Passport使用,它是这样的:
\n\n注意:这些链接可能指向旧版本的代码。它们是规范化的链接,以确保它们指向代码中的正确位置:
\n\n\n\n\n| 归档时间: |
|
| 查看次数: |
827 次 |
| 最近记录: |