我不太明白OAuth2.0/OIDC规范中response_type和grant_type之间的区别。
我的猜测是 grant_type 在与令牌端点交互时在 URL 中指定(以获取 access 和/或 refresh tokens),而 response_type 在与授权端点交互时使用以获取身份令牌和授权码。是吗?
如果是这样,在使用混合流时,我们应该使用什么作为grant_type?
response_type 和 grant_type 是 OAuth 2.0 规范中规定的两个强制参数。 OpenID Connect 建立在 OAuth 2.0 之上,这两个参数也用于 OpenID Connect。
response_type 用于授权端点。此参数定义授权响应必须包含在其响应中的内容。例如,
code
使用授权代码授予时(类似于 OpenID Connect 中的授权代码流程)。
另一方面,grant_type 用于令牌端点。它定义了用于令牌请求的grant。例如,
authorization_code
是用于授权代码授予的授予(类似于 OpenID Connect 中的授权代码流)。
对于混合流,response_type被扩展为具有多个段。这是通过 OAuth 2.0 多重响应类型编码实践 完成的。这使您能够使用 response_type,例如
response_type=id_token%20token
。并且 grant_type 将与您使用授权代码流程相同。这将是code
。这在规范的混合令牌请求中定义