Oauth 2.0 当oauth2授权代码授予流时,重定向uri参数真的是可选的吗?

Oauth 2.0 当oauth2授权代码授予流时,重定向uri参数真的是可选的吗?,oauth-2.0,Oauth 2.0,在中,uri是可选的 但是上面的授权代码流描述了重定向uri的功能。 特别是步骤(E)描述如下: 并确保重定向URI received与中用于重定向客户端的URI匹配 步骤(C) 因此,当我看到第4.1.1节时,我感到困惑。 我想也许这个文件没有错,只是愚蠢的我不明白 请告诉我为什么redirect\u uri参数是可选的。 提前感谢。中介绍了: 注册客户时,客户开发者应: o提供第3.1.2节所述的客户端重定向URI 在rfc中,应表示必须,必需 () 让我们看看@Florent Morsel

在中,uri是可选的

但是上面的授权代码流描述了重定向uri的功能。
特别是步骤(E)描述如下:

并确保重定向URI received与中用于重定向客户端的URI匹配 步骤(C)

因此,当我看到第4.1.1节时,我感到困惑。
我想也许这个文件没有错,只是愚蠢的我不明白

请告诉我为什么
redirect\u uri
参数是可选的。 提前感谢。

中介绍了:

注册客户时,客户开发者应:
o提供第3.1.2节所述的客户端重定向URI

在rfc中,
表示
必须
必需

()

让我们看看@Florent Morselli提到了哪一个

如果已注册多个重定向URI,
如果只注册了部分重定向URI,
或者如果没有注册重定向URI,
客户端必须使用“redirect_URI”请求参数在授权请求中包含重定向URI


结论 如果我们在注册客户端时只提供了一个完整的重定向uri,那么在授权请求时重定向uri是可选的

警告
如果“redirect_uri”参数包含在授权请求中,则必须将其包含在访问令牌请求中。详细信息。

您的问题的答案在步骤(C)(相同的)中:

授权服务器将用户代理重定向回客户端 使用先前提供的重定向URI(在请求中或在 客户端注册

因此,如果授权请求中没有
redirect\u uri
,则授权服务器使用在客户端注册期间设置的默认url(如@galcyurio在其回答中提到的内容所述)

还包括:

3.1.2。重定向端点

完成与资源所有者的交互后 授权服务器将资源所有者的用户代理定向回 客户。授权服务器将用户代理重定向到 以前使用建立的客户端重定向终结点 客户端注册过程中的授权服务器
或 提出授权请求


您将在中找到一些规则。从我的POV来看,应该始终将其设置为避免安全问题(例如,恶意应用程序更改了客户端配置并设置了自己的重定向uri)。顺便说一句,当使用OpenID Connect(请参阅)Thank you@FlorentMorselli用于某些身份验证流时,此参数是必需的。我没有仔细看文件。我在注册时忘记了重定向uri。