我们经常会使用第三方的账号来登录某个平台,比如使用QQ账号登录爱奇艺,使用微博登录自如APP。而登录的过程中,会提示自如想访问你的微博公开资料、好友信息,或者爱奇艺要访问您QQ头像、照片等资料。那么这个过程是有一个比较复杂的授权流程,在IoT云业务测试过程中,也会有这种场景的授权流程。下面我就通过图例结合业务场景和大家介绍下oauth授权流程。
举栗
如下图,是在使用微信登录自如APP时,自如APP要求访问用户的微信公开资料。其实就是自如想获取微信的相关接口,去访问用户的微信信息。那点击确认时这个过程,就是oauth的授权流程。有了这个概念,下面我通过一个流程图来介绍下整个流程的主要几点。
oauth授权流程
-
用户使用微信登录自如APP
-
自如APP向用户申请访问用户的个人微信资料
-
用户点击同意(代表用户同意自如访问他的微信信息)
-
用户点击同意时,自如会携带一个回调地址,去微信服务器申请获取code
-
微信返回一个code给自如
-
自如携带code和回调地址,再次想微信请求获取access_token
-
微信将access_token返回给自如
-
自如以后就会通过这个access_token,去访问用户的微信资料
划重点
-
code是有时效性的,尽量在获取后的几分钟内去申请获取access_token
-
access_token也是有过期时间的,而过期后就需要重新获取新的令牌
业务场景
在我们的业务中,会对接一些第三方的设备,以达到访问并控制第三方设备的能力。这个时候用户要想通过自家云去访问或者控制第三方云下面的设备,就需要在登录时,获取oauth授权。这里的自家云就相当于上面流程图中的自如,而第三方云相当于上面流程图中的微信,授权流程基本一致。
结束语:自己是在业务测试中,接触到这种场景,才逐渐的对这种授权流程熟悉。我们经常会遇到这种通过第三方登录某个网站或者APP,现在大家应该对这个授权流程有一些了解。如果想要知道更深的细节,可以去了解下oauth认证原理。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!