OAuth2 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。几乎每个人在使用一个 APP 或网页应用的时候都看过他们支持第三方登录比如微信登录、 QQ 登录、微博登录、 Google 账号登录、github 授权登录等等。这些都是典型的 OAuth2 使用场景。
三方应用向授权服务器(微信)请求 Access Token —> 授权服务器(微信)向用户征询意见,是否将权限授予客户应用 —> 用户同意 —> 授权服务器(微信)生成颁发 Access Token 给客户应用 —> 客户应用拿着 Access Token 去请求资源服务器(微信) —> 资源服务器验证客户应用的 Access Token —> 验证通过,返回三方需要的资源。
1、Resource Owner(资源所有者):用户,即资源的拥有人,想要分享某些资 源给第三方应用。
2、Resource Server(资源服务器):放受保护资源,要访问这些资源,需要获得访问令牌。
3、Authorization server(授权、认证服务器):授权服务器用于发放访问令牌给客户端。
4、Client(客户端):客户端代表请求资源服务器资源的第三方应用。