01 | OAuth 2.0是要通过什么方式解决什么问题?
登录虎扑的时候,我们可以选择微信、QQ登录。这背后的原理就室OAuth 2.0
OAuth 2.0 是什么?
比如我要去面试,去到美团的大楼,保安拦住我,问我要工牌,我说我是来面试的,约了李总。然后保安叫我去前台登记。
前台问我事由,我说李总已经给我手机号预约了,然后前台就往我手机号发验证码。我说出验证码之后,前台给我门禁卡,我就可以去面试了。
案例二:
假如你是一个卖家,在京东商城开了一个店铺,日常运营中你要将订单打印出来以便给用户发货。但打印这事儿也挺繁琐的,之前你总是手工操作,后来发现有个叫“小兔”的第三方软件。只要你在软件里点击同意,小兔就可以拿到一个访问令牌,通过访问令牌来获取到你的订单数据帮你干活儿了
这就是授权的过程。
为什么用 OAuth 2.0?
如果给我一个美团的工牌,我岂不是可以冒充美团的人了,所以前台只会给我一个临时的门禁卡。
OAuth 2.0 这种授权协议,就是保证第三方(软件)只有在获得授权之后,才可以进一步访问授权者的数据。
OAuth 2.0 是怎样运转的?
以小兔打单软件为例子
- OAuth 2.0 的核心是授权许可,更进一步说就是令牌机制。
- 互联网中所有的受保护资源,几乎都是以 Web API 的形式来提供访问的
- 也正因为像小兔这样的第三方软件,每次都是用访问令牌而不是用户名和密码来请求用户的数据,才大大减少了安全风险上的“攻击面”
小兔把客户引导到京东开放平台上,如果小兔是恶意的,做了一个和京东一样的网页让用户授权,一般用户难以仔细区分,小兔不就能拿到用户的密码了吗?
第三方应用在官方平台上注册的时候是要签订协议的,你说的这点就属于监守自盗了,只能靠法律法规来惩治。 另外,授权服务做登录的时候,当前一般都是采用App扫码登录,只要培养了用户这样的习惯,也能规避一大部分风险发生的概率。