Har*_*mar 1 android google-signin react-native-android react-native-ios react-native-firebase
我有一个使用谷歌登录的本机应用程序。目前,我可以使用我的手机登录的谷歌帐户之一登录,但我需要为我的谷歌帐户堆栈中的另一个谷歌帐户执行OAuth,这是为了获取 API 访问权限 我需要二级帐户的 serverAuthToken
我用于谷歌登录的库 - https://github.com/react-native-community/google-signin
到目前为止我所做的:
const firebaseGoogleLogin = async () => {
try {
await GoogleSignin.hasPlayServices();
const userInfo = await GoogleSignin.signIn();
if (userInfo) {
await storeToken(userInfo);
// eslint-disable-next-line no-console
console.log('User info retrieved during login', userInfo);
}
// create a new firebase credential with the token
// eslint-disable-next-line max-len
const credential = firebase.auth.GoogleAuthProvider.credential(userInfo.idToken, userInfo.accessToken);
// login with credential
// eslint-disable-next-line no-unused-vars
const firebaseUserCredential = await firebase.auth().signInWithCredential(credential);
console.log('Logged in')
} catch (error) {
if (error.code === statusCodes.SIGN_IN_CANCELLED) {
console.log('sign in cancelled', error);
} else if (error.code === statusCodes.IN_PROGRESS) {
console.log('signin in progress error', error);
} else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
console.log('play services are not available or outdated', error);
} else {
console.log('some other error occurred', error);
}
}
};
Run Code Online (Sandbox Code Playgroud)
上面代码的结果:
这是我用我的原谷歌帐户登录的代码中,登录后在我触发播放服务模态中使用上述其他帐户,但加载秒模态关闭签署并随之关闭,显示我Logged in在日志,因为我已经登录了,在播放服务中自动绕过选择账户的选项
上述问题仅在android中出现,ios即使使用帐户登录后似乎也很好
如果没有办法进行多帐户授权,我正在尝试进行黑客攻击,因为已经登录的帐户绕过了播放服务模式,我想在用户登录我的应用程序(进程级别)和在主活动里面,我还能有游戏服务吗?这是正确的做法吗!
小智 5
可能你已经解决了这个问题。我认为下面的方法可以解决您的问题。注销后调用此方法。
signOut = async () => {
try {
await GoogleSignin.revokeAccess();
await GoogleSignin.signOut();
this.setState({ user: null }); // Remember to remove the user from your app's state as well
} catch (error) {
console.error(error);
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2030 次 |
| 最近记录: |