Web应用怎样获取Access Token?
Posted HMS Core
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web应用怎样获取Access Token?相关的知识,希望对你有一定的参考价值。
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
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 最新技术资讯~
以上是关于Web应用怎样获取Access Token?的主要内容,如果未能解决你的问题,请参考以下文章
Python web 开发微博授权登录,获取access_token
OpenID Connect id_token 和 access_token 如果是web server获取的,需要验证吗?
微信公众平台开发-access_token获取及应用(含源码)