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?的更多相关文章
- 基于DotNetOpenAuth的OAuth实现示例代码: 获取access token
1. 场景 根据OAuth 2.0规范,该场景发生于下面的流程图中的(D)(E)节点,根据已经得到的authorization code获取access token. 2. 实现环境 DotNetOp ...
- 新浪微博Oauth2.0授权 获取Access Token
新浪微博开放平台提供了丰富的API接口,利用这些接口,开发者能够开发出独具特色的微博应用.但是,大部分接口都需要用户授权给应用,应用利用授权得到的Access Token来调用相应的接口来获取内容. ...
- 通过重复运行的Microsoft Flow由OAuth认证后获取Access Token并将其更新到实体记录
我是微软Dynamcis 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 工作笔记—新浪微博Oauth2.0授权 获取Access Token (java)
java发送新浪微博,一下博客从注册到发布第一条微博很详细 利用java语言在eclipse下实现在新浪微博开发平台发微博:http://blog.csdn.net/michellehsiao/art ...
- 自定义菜单和高级接口-获取Access Token
自定义菜单和高级接口都需要使用APPID和AppSecret来创建. 对应暂时没有这些权限的微信公众账号,开发者可以申请测试账号来体验和测试体验微信公众平台的所有高级接口的功能.链接 https:// ...
- 【Azure Developer】使用 Microsoft Authentication Libraries (MSAL) 如何来获取Token呢 (通过用户名和密码方式获取Access Token)
问题描述 在上一篇博文<[Azure Developer]使用 adal4j(Azure Active Directory authentication library for Java)如何来 ...
- SharePoint Online 使用 adal js 获取access token
最近在写一些SharePoint 的sample code, 有兴趣的小伙伴可以查看我的GitHub. 今天给大家介绍SharePoint Framework (SPFx )web part 当中怎 ...
- Web API与OAuth:既生access token,何生refresh token
在前一篇博文中,我们基于 ASP.NET Web API 与 OWIN OAuth 以 Resource Owner Password Credentials Grant 的授权方式( grant_t ...
- OAuth2.0 微博登陆网站功能的实现(一)获取用户授权及令牌 Access Token
在登陆一些网站的时候,可以选择登陆方式为第三方登陆,例如微博登陆,以爱奇艺为例,进入首页,点击 ”登陆“,会弹出登录框: 除了本站登陆外,还可以选择其他第三方登陆,比如微博登陆.QQ 登陆.微信登陆等 ...
- 微信公众平台开发视频教程-03-获取Access Token和获取微信服务器IP,添加微信菜单
1 获取access token 此token是以后每次调用微信接口都会带上的票据,token是公众号全局唯一票据,在调用其他接口之前都需要先得到token,taoken长度至少512个字符,通常用s ...
随机推荐
- Git使用与心得体会
Git使用与心得体会 一.闲聊 闲暇时间学一下Git,也算是不用在网页端操作github了 二.Git相关 集中式与分布式 Git是一个分布式的版本控制系统,而传统的SVN则属于集中式 集中式与分布式 ...
- RNN自学理解(一)
RNN对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,利用了RNN的这种能力,使深度学习模型在解决语音识别.语言模型.机器翻译以及时序分析等NLP领域的问题时有所突破. 参考文献1 ...
- Linux 下模拟制作块设备并挂载
Linux 下模拟制作块设备并挂载 作者:Grey 原文地址: 博客园:Linux 下模拟制作块设备并挂载 CSDN:Linux 下模拟制作块设备并挂载 环境 CentOS-7 下载地址:下载 Cen ...
- Java 集合简介 一
什么是集合? 集合就是由若干个确定的元素所构成的整体.例如,5只小兔构成的集合: 在数学中,我们经常遇到集合的概念.例如: ● 有限集合 ○ 一个班所有的同学构成的集合: ○ 一个网站所有的商品构成的 ...
- 现有一个接口DataOperation定义了排序方法sort(int[])和查找方法search(int[],int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法
欢迎大家加入我的社区:http://t.csdn.cn/Q52km 社区中不定时发红包 文章目录 1.UML类图 2.源码: 3.优缺点分析 1.UML类图 2.源码: package com.bac ...
- 记一次 .NET 某娱乐聊天流平台 CPU 爆高分析
一:背景 1.讲故事 前段时间有位朋友加微信,说他的程序直接 CPU=100%,每次只能手工介入重启,让我帮忙看下到底怎么回事,哈哈,这种CPU打满的事故,程序员压力会非常大, 我让朋友在 CPU 高 ...
- Istio(十一):向istio服务网格中引入虚拟机
目录 一.模块概览 二.系统环境 三.虚拟机负载 3.1 虚拟机负载 3.2 单网络架构 3.3 多网络架构 3.4 Istio 中如何表示虚拟机工作负载? 四.实战:向istio Mesh中引入虚拟 ...
- Transformer 结构分析
self-attetion 1. 输入 \[X = EmbeddingLookup(X) + PositionalEncoding \\ X.shape == (batch\_size, seq\_l ...
- 7.Vue常用属性
1. data:数据属性 在之前的学习中我们已经了解到了data,属性中存放的就是js变量 <script> new Vue({ el: '#app', // data data: { u ...
- java学习之MybBaits
0x00前言 我前面使用的jdbc和jdbc的工具类集成的但是它们在少部分代码的情况下会会简单,但是以后如果项目较大jdbc的固定代码会很难维护,如果使用框架会简单很多,也标志着java学习正式进入到 ...