OAuth 2.0

OAuth 2.0 是什么?

OAuth 2.0 是现在行业内广泛使用的一种授权协议。

其中最经典、最完备、最安全、应用最广泛的许可类型, 就是授权码许可类型(Authorization Code)。

授权码许可类型通过颁发和使用访问令牌的机制,给第三方获得访问授权者资源的权限。

举个例子,假如小明在京东商城开了一个店铺,日常运营中要将订单打印出来以便给用户发货。但打印这事儿也挺繁琐的,之前总是手工操作,后来发现有个叫“小兔”的第三方软件,它可以帮你高效率地处理这事。

但是想想,小兔是怎么访问到这些订单数据的呢?客户的订单数据属于保密数据,除非客户也就是小明授权,小兔才可以访问到这些订单数据。这中间就用到了授权码许可类型协议

下面图例显示了小明使用小兔打单软件的过程。

在这个过程中,有4个角色,分别对应OAuth2.0中的资源拥有者、客户端、授权服务和受保护资源。资源拥有者 -> 小明,第三方软件 -> 小兔软件,授权服务 -> 京东商家开放平台的授权服务,受保护资源 -> 小明店铺在京东上面的订单。

小兔打单软件必须将小明引导到京东平台下,让小明进行授权,小明授权的过程中,京东商家平台要验证小明的身份,验证通过后,颁发一个授权码,然后重定向到小兔打单软件的页面,小兔打单软件拿到授权码之后,发往后台服务,后台服务通过授权码找京东商家开发平台获得访问令牌,然后通过访问令牌请求京东订单模块获取用户订单数据。


这个过程中出现了授权码和access_token, 看到这里,可能会有疑问,为什么返回授权码的时候不直接返回access_token呢?

第三方软件在获取令牌的过程,是间接通过浏览器通信,京东授权平台返回授权码时,是通过小兔软件提供的重定向链接带过去的,而access_token是一个保密性极高的东西,暴露在浏览器中很可能会被黑客获取,所以就有了授权码这个临时中间人。


此文章为3月Day3学习笔记,内容来源于极客时间《OAuth2.0 实战课》,强烈推荐该课程!/推荐该课程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容