我正在开发一个本机应用程序,我想让我的用户能够使用google登录。但是,当我向Google API发出请求时,会返回WRONG SIGNIN Error: DEVELOPER_ERROR
。
我正在使用AWS Cognito,并希望将Google登录信息与其集成。我看到一些问题说要生成我的" webClientId"的SHA-1蓝图,但所有这些都使用了firebase。在Cognito上,没有字段可以添加相应的SHA-1蓝图。
我的代码如下:
componentWillMount() {
GoogleSignin.configure({
webClientId: googleConfig.clientId
});
}
...
googleSignIn() {
GoogleSignin.signIn()
.then((user) => {
console.log(user);
this.setState({user: user});
})
.catch((err) => {
console.log('WRONG SIGNIN', err);
})
.done();
}
...
<GoogleSigninButton
style={{ height: 48 }}
size={GoogleSigninButton.Size.Standard}
color={GoogleSigninButton.Color.Light}
onPress={this.googleSignIn.bind(this)}/>
提前感谢您的帮助。
答案 0 :(得分:1)
这是配置不匹配。确保您的 android / app / google-services.json是正确的。
您可能需要将SHA证书指纹添加到Firebase 配置。按照以下说明查找SHA1指纹 这个帖子: SHA-1 fingerprint of keystore certificate。 然后,转到https://console.firebase.google.com/,选择您的应用,然后 在项目设置下添加SHA1值(上方的齿轮图标 左)->您的应用程序-> SHA证书指纹
如果要将配置对象中的webClientId传递给 GoogleSignin.configure()确保正确无误。你可以得到你的 来自Google Developer Console的webClientId。它们列在“ OAuth 2.0客户ID”。
如果您以调试模式运行应用程序,而不使用webClientId或 您确定是正确的,问题可能出在签名(SHA-1或 SHA-256)不匹配。您需要将以下内容添加到 android / app / build.gradle:
signingConfigs { debug { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } release { if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) { storeFile file(MYAPP_RELEASE_STORE_FILE) storePassword MYAPP_RELEASE_STORE_PASSWORD keyAlias MYAPP_RELEASE_KEY_ALIAS keyPassword MYAPP_RELEASE_KEY_PASSWORD } } }
来自here。
我还在github上找到了this working example。
答案 1 :(得分:0)
GoogleAuthUtil.GetTokenGoogleAuthUtil.GetToken(this, googleAccount, scopes)
的范围字符串时在Google Developer Console中生成的“ Google WebApp客户端ID”。那就是scopes = "audience:server:client_id:" + "webClientId"