1.在联盟创建服务器应用
参考文档:开发准备
2.获取用户级 Access Token
2.1 获取 code
参考文档:接入华为帐号获取凭证
2.1.1 先按照跳转链接进行配置 url
https://oauth-login.cloud.huawei.com/oauth2/v3/authorize?
response_type=code&
access_type=offline&
state=state_parameter_passthrough_value&
client_id=APP ID&
redirect_uri=应用的回调地址&
scope=openid+profile
复制代码
接口的描述和参数如下表所示:
示例:创建测试的 App
传入 url: https://oauth-login.cloud.huawei.com/oauth2/v3/authorize?response_type=code&access_type=offline&client_id=107408391&scope=openid+profile&redirect_uri=https://www.thirdwebdemo.com/redirect_url
2.1.2 用户登录并授权
当请求跳转到 OAuth 服务,OAuth 服务会引导用户进行授权,弹出授权页面给用户,显示应用的名称和图标以及该应用所申请授权的 scope 权限列表,输入华为帐号及密码完成登录授权。
2.1.3 OAuth 服务将响应值通过回调地址 redirect_uri 回调给应用。
如果用户同意授权,则回调请求中带有授权码 code。
https://www.thirdwebdemo.com/redirect_url?
code=<返回的授权码code>
复制代码
如果用户不同意授权,则回调请求中包含错误消息。
https://www.thirdwebdemo.com/redirect_url #error=1107&error_description=access+denied
复制代码
2.2 通过 code 获取 Access Token
参考文档:获取凭证Access Token
Authorization Code 只有 5 分钟有效期,并且用完一次就会失效,请重新由用户授权,生成 Authorization Code。
2.2.1 接口说明
2.2.2 直接通过 code 获取 access_token、refresh_token
备注:通过 2.1.3 获取的 code 需要 UrlDecode 后再使用
Postman 请求示例:
请求示例:
POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Cache-Control: no-cache
Postman-Token: 923683a5-7379-03f5-b83f-072ba217fc65
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code&code=DwEEABlWuXdOMrHWphJ7ixKxqkMiTfdoFX11KIcY0CP8gL2Qq5b5MNZpGtPWHKK5KBHm6u6KDP1BXq8JRunU4xIz4DV2zbdGCzEPCbuRaDz%2FzgbzWV6ty2K1TcbToSEdDszr1to17JbGiI5yM7oUx5kEf200rCvVBEGWy8a%2BBCADZ8%2BWPAAEd2O%2BUnjqoAhDSjs2s3ate0heX3DFAUrtwIOcZLCK%2FWby%2BU2oD2eaXX0CXhBNY5PE0nzBLxr4%2B5%2BYH%2BFh8%2BSssOl3repWjH0bxni8iQ%3D%3D&client_id=107408391&client_secret=caa9b93ef209bcb8f754a5742b7d617d5db2bd5901ae8656b60e79cca93825f8&redirect_uri=https%3A%2F%2Fwww.thirdwebdemo.com%2Fredirect_url
复制代码
2.2.3 通过 refresh_token 获取 access_token
code 的有效期只有 5 分钟,refresh_token 的有效期半年,access_token 的有效期 1 个小时。不建议每次都获取 code 来换取 access_token,可以直接保存 refresh_token,再使用 refresh_token 换 access_token 的方式。
请求示例:
POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Cache-Control: no-cache
Postman-Token: 53d26c97-c7d8-3d49-042a-db7a4b2768a5
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&client_id=107408391&client_secret=caa9b93ef209bcb8f754a5742b7d617d5db2bd5901ae8656b60e79cca93825f8&refresh_token=DAECANR5QD9Ta3YKIn2Pwpmq8g6CyOGcsz3iNsxq8YXBpZs6EGlqb%2FM8Iyc%2FXVORdoqb%2FaZXKs9jqz72kQCmp9Om%2B7%2Fp7ff6QfH%2FKN32GwsE9xq%2BTbDT
复制代码
3 获取应用级 Access Token
参考文档:客户端模式(Client Credentials)
请求示例:
POST /oauth2/v3/token HTTP/1.1
Host: oauth-login.cloud.huawei.com
Cache-Control: no-cache
Postman-Token: 1e120cb0-fa6f-e622-1bf0-66a13c82b643
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=107408391&client_secret=caa9b93ef209bcb8f754a5742b7d617d5db2bd5901ae8656b60e79cca93825f8
复制代码
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
评论