OAuth2.0/OIDC 中的 grant_type 与 response_type
Posted
技术标签:
【中文标题】OAuth2.0/OIDC 中的 grant_type 与 response_type【英文标题】:grant_type vs response_type in OAuth2.0/OIDC 【发布时间】:2018-12-26 10:27:24 【问题描述】:我不太明白OAuth2.0/OIDC规范中response_type和grant_type之间的区别。
我的猜测是 grant_type 在与令牌端点交互时在 URL 中指定(以获取 access 和/或 刷新令牌) , response_type 用于与授权端点交互以获取身份令牌和授权码。是这样吗?
如果是这样,在使用 hybrid 流程时,我们应该使用什么作为 grant_type?
【问题讨论】:
【参考方案1】: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 Multiple Response Type Encoding Practices 完成的。这使您可以使用 response_type,例如 response_type=id_token%20token
。 grant_type 将与您使用授权码流相同。它将是code
。这是在规范的hybrid token request
【讨论】:
以上是关于OAuth2.0/OIDC 中的 grant_type 与 response_type的主要内容,如果未能解决你的问题,请参考以下文章
组件分享之后端组件——一款基于Golang的认证全套模块Casdoor
iOS Xcode 中的 UIViewController 中的 UIView 中的 UITableView
如何将视图中的 javascript 代码中的对象列表传递给控制器中的操作方法
如何从账户 A 中的 Lambda(VPC 中的 Lambda)调用账户 B 中的 AWS Lambda 函数(VPC 中的这个 Lambda)