【问题标题】:The Huawei Account Server failed to display the email address华为帐号服务器显示邮箱失败
【发布时间】:2020-05-19 02:53:51
【问题描述】:

邮箱地址包含在账号信息中,但在华为账号服务器对/oauth2/v3/tokeninfo API调用的响应中没有找到。为什么?

说明

集成HUAWEI Account Kit后,调用华为帐号服务器的/oauth2/v3/tokeninfo接口获取ID token,但在响应体中找不到email地址。 本例的响应如下:

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

API参考中的响应如下:

图 1 呼叫成功时的响应

【问题讨论】:

    标签: huawei-mobile-services huawei-account


    【解决方案1】:

    在获取ID Token之前,应用不会请求华为帐号用户授权应用获取邮箱地址。

    解决方案:

    在设备上执行以下操作:

    (HMS SDK 3.0)

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

    (HMS SDK 4.0)

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

    HMS SDK 3.0的requestEmail()方法和HMS SDK 4.0的setEmail()方法用于请求华为帐号用户授权应用获取邮箱地址。这两个方法必须提前添加到设备上的代码中。

    提示:

    关于如何请求华为帐号用户授权应用获取相关信息,请访问以下链接:

    https://developer.huawei.com/consumer/en/doc/HMS-References/account-huaweiidauthparamsHelper#setEmail

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 2021-10-08
      • 2013-07-02
      • 1970-01-01
      • 2021-07-09
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多