1:应用场景展示
1.1: 第三方授权登录 登录百度app使用 qq 微博 和微信的授权登录
1.2: 用户登录不需要使用百度app的账号密码 使用微信授权的密码账号来登录 百度去获取微信用户的信息
1.3: 百度如何获取微信的用户信息 就需要用到Oauth2
2:Oauth2的基本概念
第三方应用为百度 服务提供者为微信
2.1: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容
2.2: 认证图如下:
- 说明:
(1)用户请求访问应用系统。
(2)应用系统将认证请求发送到认证服务器,认证服务器判断是否认证,如果没有认证过, 则重定向到认证登录页面进行统一认证。
(3)认证成功后,重定向到应用系统指定URL,并返回code。
(4)应用系统根据返回的code请求认证服务器获取access_token和refresh_token。
(5)应用系统根据返回的access_token请求认证服务器获取用户信息。
(6)登录到应用系统主页。
2.3:oauth里面的角色:
用户 用户代理 第三方 服务提供商 授权服务器 资源服务器也就是存储信息的
3:Oauth2的解决四种方案
3.1:针对客户端应用如何获取服务者提供商用户信息oauth2提出四种解决方式
4:主讲授权码模式
4.1:获取授权码
4.2:申请授权接口
code是授权码使用方式 token是简单模式直接跳过code访问
4.3:申请token 资源服务器获取的令牌是否合法需要进行校验
客户端信息
5:授权模式流程
5.1: 使用spring security在idea中搭建两个后台服务 授权服务器和资源服务器
使用postman或者apifox模拟百度后台发送请求到授权服务器和资源服务器
5.2:登录百度使用微信
5.3:授权接口放到浏览器上面
5.4:授权服务器会要求登录 使用账号密码和微信扫码一样 输入账号密码
5.5:询问是否允许授权 同意授权
5.6:跳回百度界面 并且会返回一个授权码 code=
5.7: code值写入postman 会返回token
5.8:使用token获取用户信息
基本流程: 获取code之后 通过code获取token 通过token获取用户信息 这就是授权码模式!!!