什么是OAuth2?
OAuth2是基于Token的认证协议,可以访问第三方的用户资源数据,而不需要密码 例如:B站使用微信登录,登录的时候区微信获取用户数据,是不需要用户在B站中输入用户的微信账号密码
OAuth2执行流程实例
讲解:
用户点击微信登录---------------------->平台给微信发送认证-----------------> 微信认证该平台是否在微信中认证过了------------------------>认证成功返回二维码让用户扫----------------------> 用户扫描二维码进行授权------------------------>用户授权以后发送请求到微信------------------->微信校验用户成功返回授权码给平台-------------------> 平台得到授权码以后再去访问就会使用授权码进行 访问微信得到用户数据
Aauth2认证模式
- 授权模式 访问第三方服务 应用场景:B站使用微信登录
- 隐士模式 第三方单页面也用 例如:微信小程序 基于微信开发的
- 密码模式 使用账号密码
- 客户端模式 完全信任一方 没有用户的参与
Aauth2的角色
1 客户端
客户端就是有第三方应用需要访问我的资源,这时候第三方就是客户端
在本项目中,后端工程就相当于是客户端(第三方),因为它本身是没有用户的信息的们需要访问资源服务,但是访问资源服务需要认证到UAA中,所以会将后端工程认证到UAA。这样就可以得到用户的信息了
2 资源拥有者
资源拥有者就是用户
3 授权服务器
也是认证服务器,用来对访问者进行验证身份,访问资源授权。返回一个授权凭证
4 资源服务器
是存储的用户信息