OAuth2协议,定义了一套用户、第三方服务和存储着用户数据的平台之间的交互规则,可以使得用户无需将自己的用户名和密码暴露给第三方,即可使第三方应用获取用户在该平台上的数据,最常见的场景便是现在互联网上的各种使用XXX账号登录。
OAuth2协议中角色介绍
resource owner(资源所有者,也就是我们亲爱的用户自己)
resource server(资源服务器,也就是用户自己的资源所在的服务器)
client(客户端,浏览器)
authorization server(授权服务器,也就是认证和授权的地方)
总体流程:
OAuth 2.0 规定了四种获得令牌的流程
授权码(authorization-code)
密码式(password)
客户端凭证(client credentials)
隐藏式(implicit)
第一种授权方式:授权码(authorization-code)
概念:授权码方式,指的是第三方应用去授权服务端先申请一个code,然后再用该code获取令牌token。
使用场景:多应用
第二种授权方式:密码式(password)
概念:如果你高度信任某个应用,用户直接把用户名和密码告诉该应用。该应用就使用你的密码来申请令牌,这种方式称为"密码式"。