是什么决定使用的oauth2授权类型?

时间:2019-04-11 18:56:22

标签: oauth-2.0

oauth2端点如何确定请求的授予类型?

是端点本身吗(即,每个端点专用于一种或多种授予类型)。还是请求中发送的参数列表?还是Grant_type参数的值?

以anilist.co为例。

他们的oauth2文档说,为了授权代码的授予,可以将以下端点与这些参数一起使用:

https://anilist.co/api/v2/oauth/authorize?client_id= {client_id}&redirect_uri = {redirect_uri}&response_type = code

对于隐式授予,它说使用此方法:

https://anilist.co/api/v2/oauth/authorize?client_id= {client_id}&response_type = token

(请参阅:https://anilist.gitbook.io/anilist-apiv2-docs/overview/oauth/authorization-code-granthttps://anilist.gitbook.io/anilist-apiv2-docs/overview/oauth/implicit-grant

因此,似乎他们有一个端点根据response_type值和redirect_uri的存在与否(换句话说,授予类型基于参数)确定授予类型。

但是对于每个oauth2提供程序总是这样吗?

根据此处的网站

https://alexbilbie.com/guide-to-oauth-2-grants/

…授权代码和隐式授权类型具有完全相同的参数集,但基于response_type值(隐式令牌,授权代码)进行区分。但是,其他授予类型由grant_type值区分。为什么不是每种Grant类型都可以通过grant_type值来区分?

因此,如果我要猜测的话,我会说授予类型是由grant_type的值确定的,而缺少grant_type的地方,则是由response_type的值确定的。

这是正确的吗?该标准是否适用于整个行业?

2 个答案:

答案 0 :(得分:1)

由规范RFC [rfc6749]确定 [https://tools.ietf.org/html/rfc6749] 1

此RFC确定OAuth 2.0实施所需的所有端点。 由实施者决定。但是,他们将必须遵守互操作性规范。否则,专有流量可能无法扩展。

实际上,您还可以检查OpenIDConnect规范以了解更多详细信息。 (https://openid.net/specs/openid-connect-core-1_0.html

答案 1 :(得分:0)

只需在此处添加,如果您希望将OAuth 2.0与本机应用程序一起使用,则可以使用不同的RFC,即https://tools.ietf.org/html/rfc8252

相关问题