我正在尝试了解OAuth 2:
据我所知,“access_token”和“身份验证代码”非常相似,因为它们代表了最终用户的意愿。唯一的区别是access_token可以单独使用,而“身份验证代码”必须与app_secret一起使用(rfc6749中的client_secret)。
所以在我看来,如果它们有相似的名字,它会澄清很多,例如:
因此,将调用相应的授权类型名称:
或者我还有其他差异吗?
答案 0 :(得分:2)
授权代码不像您的摘要所暗示的访问令牌。特别是,这不准确:"唯一的区别是access_token可以单独使用,而#34;身份验证代码"必须与app_secret"一起使用。
在OAuth 2.0 获取授权和使用授权是非常不同的,涉及不同的参与者,他们可以获得不同类型的信息。授权代码是握手过程的一部分,授权服务器获得访问受保护资源的权限。然后,生成的访问令牌将发送到资源服务器(不需要知道任何客户端机密或其他凭据),以代表用户访问资源。
所以他们实际上完全不同。
答案 1 :(得分:0)
你的理论
full_token,half_token,strong_token,super_token
的存在是因为您误解了Access_token
和Authorization_code
。
Authorization_code
是一个短暂的令牌,交换得到Access_token
。授权服务器生成Authorization_code并发送回客户端以保护资源所有者的凭证。客户端稍后将此Authorization_code交换为访问令牌。获得access_token后,授权代码将过期,您无法为同一Authorization_code发出另一个access_token。
要访问您的API,您需要在每个请求的头中传递access_token。您无法使用Authorization_code访问您的API。这就是Authorization_code不是half_token
的原因。
同样full_token, strong_token, super_token
也没有意义,因为我们只有一个access_token。