当前位置: 首页 > news >正文

【华为账号服务】【FAQ】Account Kit常见咨询合集--获取帐号个人信息相关问题

 1、Access Token和Refresh Token最长会有多长?

Access Token和Refresh Token的长度与其中编码的信息有关,目前来讲Access Token和Refresh Token的长度不会超过1024字符。

2、调用获取Access Token的接口时,是否有次数和频率限制?

单个App在一小时内最多允许10000次调用,超过限制将获取Token失败。

3、为什么帐号中存在Email信息,但是服务端调用/oauth2/v3/tokeninfo接口后在响应中却没有Email信息?

问题描述

集成Account Kit,获取ID Token,调用服务侧的/oauth2/v3/tokeninfo接口后,发现不能在响应体中获取响应字段的Email信息。

得到的响应如下:

{
    "at_hash": "XXXXXX",
    "aud": "XXXXXX",
    "sub": "XXXXXX",
    "azp": "XXXXXX",
    "kid": "XXXXXX",
    "iss": "https://accounts.huawei.com",
    "typ": "JWT",
    "exp": 1579682457,
    "display_name": "136******53",
    "iat": XXXXXX,
    "alg": "RS256"
}

接口指导中的响应如下所示:

{
    "iss":"String",
    "sub":"String",
    "aud":"String",
    "exp":"Long",
    "iat":"Long",
    "nonce":"String",
    "at_hash":"String",
    "azp":"String",
    "email_verified":"Boolean",
    "email":"String",
    "picture":"String",
    "name":"String",
    "locale":"String",
    "family_name":"String",
    "given_name":"String",
    "display_name":"String"
}

可能原因

在获取ID Token前,未请求华为帐号用户授权应用获取Email地址。

处理步骤

在端侧的代码中提前添加请求华为帐号用户授权应用获取Email地址的操作。

3.0版本的授权请求接口为requestEmail();4.0版本授权请求接口为setEmail()。

HMS Core SDK 3.0版本

HuaweiIdSignInOptions mSignInOptions = new HuaweiIdSignInOptions.Builder(HuaweiIdSignInOptions.DEFAULT_SIGN_IN).requestServerAuthCode().requestIdToken("").requestEmail().build();

HMS Core SDK 4.0版本

HuaweiIdAuthParams authParams = new HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM).setIdToken().setEmail().createParams();

说明

请求华为帐号用户授权应用获取相应信息的详情请参见HuaweiIdAuthParamsHelper的setEmail。

4、当使用jwt.io校验ID Token时,是否需要提供私钥?

解析ID Token不需要私钥,校验ID Token也不需要私钥。

5、示例代码中的ID Token客户端校验的代码运行后报错,提示:id Token validate failed.NoSuchMethodError?

ID Token能正常演示的最小版本为Android 9,请排查测试手机上的版本是否符合要求。

6、为什么配置正确,但是在端侧回调成功后的帐号信息里调用getEmail()获取不到Email信息?

Email信息并不是必填字段,请登录帐号中心确认用户的帐号信息中是否包含Email信息。

7、验证ID Token有效性中的公钥具体的更新策略是什么?什么时间点更新?更新后我缓存的旧公钥是不是就不能用了?

验证ID Token有效性中的公钥每天更新一次,应用服务器可以缓存公钥的值。若公钥失效,旧公钥不可用,请在certs网站上获取最新的公钥,并更新应用服务器缓存的旧公钥。

8、接入华为帐号,是否可以获取UID?

不可以,由于需要隐私保护,接入华为帐号后只能获取openId。

9、openId和unionId的长度问题?

openId:当前非固定长度,最大允许长度256,需进行三倍冗余考虑,不推荐进行长度限制。

unionId:当前固定长度46,最大允许长度64,需进行三倍冗余考虑,不推荐进行长度限制。

说明

unionId和openId的区别在于,如果开发者帐号下管理了多个应用,针对同一个华为帐号,不同的应用返回的openId值不同,但返回的unionId相同。如果开发者需要在不同应用中共享同一个华为帐号的用户信息,可以使用unionId作为用户标识。

10、Access Token和Refresh Token的有效时长是多久?

Access Token的有效时长是1个小时,Refresh Token的有效时长是180天。

PS:这是根据官方目前的FAQ整理,如有变动,大家以官网发布的为准哦!

 欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

相关文章:

  • 每个人都可以用的开源微信机器人
  • 一幅长文细学华为MRS大数据开发(四)——HBase
  • Vue2、Vue3知识总结---完整版✨
  • ISME| 南农大沈其荣院士团队最新揭示根际微生物组成变化可更早预测番茄青枯病
  • java基于 ssm+jsp的线上授课作业管理系统
  • 一、Win10安装并检测GPU版本Pytorch
  • 远程调试 idea配置remote debug、在远程服务器的程序中,添加JVM启动参数-Xdebug
  • Google Earth Engine(GEE)——一个简单的时序动画UI
  • L74.linux命令每日一练 -- 第十章 Linux网络管理命令 -- nmap和tcpdump
  • 进入mysql命令行之后,怎么退出
  • Js获取url里面的参数
  • springboot小区物业管理系统毕业设计-附源码051745
  • stm32驱动TFTLCD液晶屏显示图片+汉字(快速上手,只教怎么用,不讲原理!)
  • 神经网络参数研究方法,神经网络参数研究方向
  • JS常用事件,使用方法
  • Android Volley源码解析
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • HTTP请求重发
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • rabbitmq延迟消息示例
  • React Native移动开发实战-3-实现页面间的数据传递
  • windows下使用nginx调试简介
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 为什么要用IPython/Jupyter?
  • 项目管理碎碎念系列之一:干系人管理
  • 国内开源镜像站点
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • #Linux(Source Insight安装及工程建立)
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (力扣)循环队列的实现与详解(C语言)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (算法二)滑动窗口
  • (转) Face-Resources
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ..回顾17,展望18
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net反编译的九款神器
  • .NET构架之我见
  • .net实现客户区延伸至至非客户区
  • .ui文件相关
  • /usr/bin/env: node: No such file or directory
  • :“Failed to access IIS metabase”解决方法
  • @Controller和@RestController的区别?
  • @ModelAttribute使用详解
  • @property括号内属性讲解
  • @staticmethod和@classmethod的作用与区别