前提
- 一、第三方应用要到授权服务器进行注册,提供或获取以下3个东西
- 回调地址:认证成功后的回调地址(重定向)
- ClientID:第三方应用的标识,相当于用户名
- ClientSecret:相当于密码,要第第三方自己保密
- 二、授权服务器功能
- (认证)授权页面
- token_url:第三方应用通过code、ClientID、ClientSecret访问授权服务器获取令牌
- 生成授权码code
- 生成令牌token
授权过程一![OAuth2打码模式](https://i-blog.csdnimg.cn/blog_migrate/236a2aa93fc06a7a021bee2d03064db3.png)
- 一、用户通过操作代理(浏览器)来访问第三方应用(web后台),第三方应用发现需要(认证)授权才能访问相关资源,则转向(重定向)授权服务器(登录)授权页面
- 用户输入用户名、密码进行认证,并进行授权,从授权服务器返回回调地址和code,以及token_url
- 浏览器重定向到回调地址到第三方应用
- 第三方应用发送code、ClientID、ClientSecret访问授权服务器token_url获取token,并将token保存到 (第三方应用) 本地
- 第三方应用使用token访问受保护的资源,
- 最后将资源处理结果返回给浏览器(用户)
授权过程二
- 第一步:用户访问页面
- 第二步:访问的页面将请求重定向到认证服务器
- 第三步:认证服务器向用户展示授权页面,等待用户授权
- 第四步:用户授权,认证服务器生成一个code和带上client_id发送给应用服务器(有一个重定向到应用服务器的过程),然后,应用服务器拿到code,并用client_id去后台查询对应的client_secret
- 第五步:将code、client_id、client_secret传给认证服务器换取access_token和refresh_token
- 第六步:将access_token和refresh_token传给应用服务器
- 第七步:验证token,访问真正的资源页面