华为Account Kit静默登录成功后能否调用authAccount.getAccessToken()获取AccessToken
华为Account Kit静默登录获取AccessToken说明
结论
静默登录成功后返回的AuthAccount对象可以直接调用getAccessToken()方法获取AccessToken,只需满足两个前置配置条件:
- 构造
AuthParams实例时,已调用setAccessToken(true)配置需要返回AccessToken,同时已声明业务所需的对应权限scope - 此前用户已经通过主动授权的方式完成过当前应用的华为账号登录,静默登录仅在已有授权记录时生效
代码修改示例
你可以直接在现有静默登录成功的回调中补充获取AccessToken的逻辑:
private void silentSignIn() { Task<AuthAccount> task = mAuthManager.silentSignIn(); task.addOnSuccessListener(new OnSuccessListener<AuthAccount>() { @Override public void onSuccess(AuthAccount authAccount) { Log.i(TAG, "silentSignIn success"); Log.i(TAG, "touxiang: "+authAccount.getAvatarUriString()); // 新增获取AccessToken逻辑 String accessToken = authAccount.getAccessToken(); Log.i(TAG, "accessToken: "+accessToken); } }); task.addOnFailureListener(new OnFailureListener() { @Override public void onFailure(Exception e) { //if Failed use getSignInIntent if (e instanceof ApiException) { ApiException apiException = (ApiException) e; signIn(); } } }); }
注意事项
- AccessToken存在有效期,无需本地长期存储,需要使用时可直接调用静默登录接口刷新获取
- 若调用
getAccessToken()返回空值,优先检查AuthParams初始化配置是否正确,其次确认当前华为账号是否已完成应用授权、授权是否过期
内容的提问来源于stack exchange,提问作者abc12345
相关产品推荐
相关产品推荐

