Google 登录不适用于客户端 ID
Google sign in doesn't work with client id
我正在为我的公司开发一个应用程序。它必须具有 Google 登录功能。但是,公司使用 Firebase 帐户仅用于推送通知和 crashlytics,并使用单独的 Google Cloud Platform 帐户用于 Google 登录。该帐户有一个 OAuth 客户端注册为 Android(SHA1 和包名称正确)。问题是当我尝试将 requestIdToken(here_is_my_client_id)
添加到 GoogleSignInOptions
时,我只在登录对话框消失后收到代码 10 的错误。没有客户端 id 一切正常,但对我来说必须使用它。如果有任何帮助,我将不胜感激!
嗯,您需要创建两个 OAuth 2.0。第一个(OAuth 2.0 类型 = Android)使用 SHA-1 证书连接 android 项目,第二个(OAuth 2.0 类型 = Web 应用程序)获取 IdToken 和授权码.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(Scopes.DRIVE_APPFOLDER))
.requestIdToken(getString(R.string.server_client_id)) // Web application client_id
.requestServerAuthCode(getString(R.string.server_client_id)) // Web application client_id
.requestEmail()
.build();
经过一番研究,我发现您必须将 Web 项目的 Google 客户端 ID 传递给 requestIdToken
。我之前一直在传递 Android 项目的 ID(来自 Google Cloud Platform)。
我正在为我的公司开发一个应用程序。它必须具有 Google 登录功能。但是,公司使用 Firebase 帐户仅用于推送通知和 crashlytics,并使用单独的 Google Cloud Platform 帐户用于 Google 登录。该帐户有一个 OAuth 客户端注册为 Android(SHA1 和包名称正确)。问题是当我尝试将 requestIdToken(here_is_my_client_id)
添加到 GoogleSignInOptions
时,我只在登录对话框消失后收到代码 10 的错误。没有客户端 id 一切正常,但对我来说必须使用它。如果有任何帮助,我将不胜感激!
嗯,您需要创建两个 OAuth 2.0。第一个(OAuth 2.0 类型 = Android)使用 SHA-1 证书连接 android 项目,第二个(OAuth 2.0 类型 = Web 应用程序)获取 IdToken 和授权码.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestScopes(new Scope(Scopes.DRIVE_APPFOLDER))
.requestIdToken(getString(R.string.server_client_id)) // Web application client_id
.requestServerAuthCode(getString(R.string.server_client_id)) // Web application client_id
.requestEmail()
.build();
经过一番研究,我发现您必须将 Web 项目的 Google 客户端 ID 传递给 requestIdToken
。我之前一直在传递 Android 项目的 ID(来自 Google Cloud Platform)。