OAuth认证流程、Access Token以及Refresh Token简介

https://zhuanlan.zhihu.com/p/664056085

背景

很多的网站、APP 都弱化了甚至没有搭建属于自己的账号体系,而是使用其它社会化的第三方登陆的方式,比如在登陆某个网站的时候选择通过 github 或者微信、微博等方式登陆,这样不仅免去了用户注册账号的麻烦,还可以获取用户的好友关系来增强自身的社交功能。

例如要通过 github 这样的第三方网站去登陆某个没有自己账号体系的平台,最传统的方式是直接在该平台的登陆页面输入 github 的账号密码,该平台通过用户的账号和密码去 github 上面获取用户的数据,但是这样做有很多缺陷:

  • 该平台需要明文保存用户的 github 账号和密码,不安全;
  • 该平台拥有获取用户在 github 的所有权限;
  • 用户只有修改密码,才能收回赋予该平台的权限,会导致其它获得用户授权的第三方应用全部失效;
  • 只要有一个第三方应用程序被破解,就会导致用户密码泄露,以及所有使用 github 登陆过的网站的数据泄漏;

为了解决以上问题,就有了 OAuth。

原理

OAuth在“客户端”和“服务端”之间设置了一个授权层(authorization layer)。“客户端”不能直接登陆“服务端”,只能登陆授权层,以此将用户与客户端区分开来。“客户端”登陆授权层所用的oken与用户的密码不同,用户可以在登陆的时候,指定授权层 token 的权限范围和有效期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值