You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Java应用中能否通过Credential Manager仅获取serverAuthCode?

Android Java应用中能否通过Credential Manager仅获取serverAuthCode?

当然可以!你只需要在获取到Credential响应后,从返回的Google ID凭证中提取serverAuthCode即可——这正是你的后端需要用来向Google发起请求、获取用户信息的关键值。

下面是调整后的实现代码,重点关注onResult方法里的处理逻辑:

CredentialManager manager = CredentialManager.create(getApplicationContext());
GetGoogleIdOption googleIdOption = new GetGoogleIdOption.Builder()
        .setFilterByAuthorizedAccounts(true) // 仅显示已授权的Google账号,不展示"创建新账号"界面
        .setAutoSelectEnabled(true)
        .setServerClientId("web_client_id") // 这里要填你的Web客户端ID,必须和后端使用的一致
        .build();
GetCredentialRequest request = new GetCredentialRequest.Builder()
        .addCredentialOption(googleIdOption)
        .build();

CredentialManagerCallback<GetCredentialResponse, GetCredentialException> credentialManagerCallback = new CredentialManagerCallback<GetCredentialResponse, GetCredentialException>() {
    @Override
    public void onResult(GetCredentialResponse result) {
        // 将凭证强转为GoogleIdCredential,从中提取serverAuthCode
        if (result.getCredential() instanceof GoogleIdCredential googleIdCredential) {
            String serverAuthCode = googleIdCredential.getServerAuthCode();
            // 拿到这个code之后,就可以传给后端啦
            if (serverAuthCode != null) {
                // 这里写你的逻辑:把serverAuthCode发送到后端
            } else {
                // 处理未获取到serverAuthCode的情况
            }
        }
    }

    @Override
    public void onError(@NonNull GetCredentialException error) {
        // 按你的需求处理错误,比如提示用户登录失败等
    }
};
manager.getCredentialAsync(
        _activity_instance,
        request,
        null,
        Executors.newSingleThreadExecutor(),
        credentialManagerCallback
);

需要注意的几个关键点:

  • 务必确保你设置的serverClientId是Web应用的客户端ID(不是Android应用的),这个ID需要在Google Cloud控制台中配置,并且和后端用来验证的客户端ID完全一致。
  • 如果getServerAuthCode()返回null,大概率是客户端ID配置有误,或者账号没有对应的授权权限,这时候需要检查控制台的OAuth 2.0配置,确保已启用对应的API并正确设置了重定向URI等信息。

备注:内容来源于stack exchange,提问作者paskl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 11:08:11