首页 > 解决方案 > OAuth2.0/OIDC 中的 grant_type 与 response_type

问题描述

我不太明白OAuth2.0 / OIDC规范中response_typegrant_type之间的区别。

我的猜测是,在与令牌端点交互(以获取访问和/或刷新令牌)时,在 URL 中指定了grant_type ,而在与授权端点交互以获取身份令牌授权代码时使用了response_type。是对的吗 ?

如果是这样,在使用混合流时我们应该使用什么作为授权类型

标签: authenticationoauth-2.0authorizationopenid-connect

解决方案


response_typegrant_type是从 OAuth 2.0 规范建立的两个强制参数。因此 OpenID Connect 建立在 OAuth 2.0 之上,这两个参数也在 OpenID Connect 中使用。

response_type用于授权端点。此参数定义授权响应必须包含在其响应中的内容。例如,code当使用授权码授予时(类似于 OpenID Connect 中的授权码流)。

另一方面, grant_type用于令牌端点。它定义了用于令牌请求的授权。例如,authorization_code是用于授权码授权的授权(类似于 OpenID Connect 中的授权码流)。

对于混合流,response_type扩展为具有多个段。这是通过OAuth 2.0 Multiple Response Type Encoding Practices完成的。这使您可以使用 response_type,例如response_type=id_token%20token. 并且grant_type将与您使用授权代码流相同。会的code。这是在规范的混合令牌请求中定义的


推荐阅读