华为账号服务器显示邮箱地址失败
The Huawei Account Server failed to display the email address
邮箱地址包含在帐号信息中,但在华为帐号服务器对/oauth2/v3/tokeninfo API调用的响应中找不到。为什么?
描述
集成华为帐号服务后,调用华为帐号服务器的/oauth2/v3/tokeninfo API获取ID token,但在响应体中找不到邮箱地址。
本例响应如下:
{
"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 调用成功后的响应
应用获取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()方法用于请求华为帐号用户授权应用获取邮箱。这两个方法必须提前在设备上添加代码。
提示:
如何请求华为帐号用户授权应用获取相关信息,请访问以下link:
邮箱地址包含在帐号信息中,但在华为帐号服务器对/oauth2/v3/tokeninfo API调用的响应中找不到。为什么?
描述
集成华为帐号服务后,调用华为帐号服务器的/oauth2/v3/tokeninfo API获取ID token,但在响应体中找不到邮箱地址。 本例响应如下:
{
"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 调用成功后的响应
应用获取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()方法用于请求华为帐号用户授权应用获取邮箱。这两个方法必须提前在设备上添加代码。
提示:
如何请求华为帐号用户授权应用获取相关信息,请访问以下link: