Ouath2.0的Workflow
Ouath2.0
ouath2.0是一种授权协议
它的存在是为了“一个应用如何在不拿到用户密码的情况下,访问用户在另一个系统的数据?”,平常网站里跳出来的第三方登录诸如使用google账号登录、微信登录实际上用的都是这一套协议,从而实现了比如你能够用google账号授权登录一个网站,但是网站拿不到你的google账号密码
Ouath2.0中大概可以分为这几个交互主体:
- 用户
- 网站前端
- 网站后端
- 授权服务器
- 资源服务器
Ouath2.0流程:
以下是一种安全的通常实现
- 用户打开网站 example.com
- 网站发现用户尚未登录 ——> 跳转到授权服务器提供界面(同时也会带上后面要用到的重定向地址)
- 用户在授权服务器提供界面上输入账号密码(或者其他授权操作)
- 授权成功之后授权服务器返回临时code, 用户浏览器带上code重定向到之前给的重定向地址app.com/callback?code=123
- 网站后端收到网站前端带来的临时code,并拿着该code去找授权服务器换Accesstoken
- 授权服务器确认并发送Accesstoken给网站后端
- 网站后端使用access_token调用资源服务器获取相应资源
//后两条是流程之后比较通用的做法 - 后端根据用户信息建立自己系统的登录态(session / JWT)
- 后续请求只使用自己系统的登录态