
上QQ阅读APP看书,第一时间看更新
2.3.2 OAuth Client使用
(1)Access Token获取
OAuth 2.0是对用户资源授权和开放的标准协议,它为桌面、手机或Web应用提供了一种简单、标准的方式去访问需要用户授权的API服务。在该协议下,Access Token(访问令牌)是应用得到用户授权后所获得的资源访问凭证。OAuth 2.0有4种获取访问令牌的模式,包括授权码模式、隐藏式模式、密码式模式和客户端密码模式。HMS Core主要使用了OAuth 2.0中的授权码模式和客户端密码模式。
在获取Access Token前,开发者需要登录华为开发者联盟的API Console来创建OAuth Client,获取应用的App ID和App SECRET。界面如图2-13所示。
图2-13 创建OAuth Client
在授权码模式下,根据申请到的App ID与App SECRET来获取Access Token,最终访问用户相关的资源。在客户端密码模式下,获取Access Token不需要用户授权,但通过此方式获取的Access Token仅可以访问与用户无关的资源。
更多OAuth 2.0的相关知识请参考https://oauth.net/2/。
(2)典型交互流程
开发者App通过Access Token访问开放的服务器RESTful接口。图2-14为OAuth Client交互流程示意图。
图2-14 OAuth Client交互流程
具体交互流程如下。
①开发者App通过用户的授权获取Access Token;
②开发者App使用Access Token访问业务服务器的API接口;
③华为业务服务器向华为OAuth服务器验证Access Token的有效性;
④华为业务服务器的接口返回需要的数据。