如何解决如何在 React Native 应用程序中实现 Google One Tap 登录?
npm 上可用的任何经过验证的库,以便我可以使用它在我的本机应用程序之一中实现 Google 一键登录。
解决方法
你是说用谷歌登录吗?你试过这个包 google-signin 吗?
import { GoogleSignin,statusCodes } from '@react-native-community/google-signin';
import { connect } from "react-redux";
import LoginButtonBase from './LoginButtonBase';
import { Alert } from 'react-native';
class GoogleLoginButton extends LoginButtonBase {
constructor(props) {
super(props);
this.login = this.login.bind(this);
}
componentDidMount() {
// GoogleSignin.configure({
// offlineAccess: true,// webClientId: "your-client-id"
// });
}
async login() {
console.log('login google');
try {
let hasGoogleService = await GoogleSignin.hasPlayServices();
if (!hasGoogleService) {
Alert.alert(null,"This device has no google play");
return;
}
await GoogleSignin.signOut();
const userInfo = await GoogleSignin.signIn();
let { idToken } = userInfo;
if (idToken) {
this.props.dispatch({
type: "auth/googleLogin",payload: {
googleToken: idToken
}
})
}
} catch (error) {
console.warn(error);
if (error.code === statusCodes.SIGN_IN_CANCELLED) {
// user cancelled the login flow
} else if (error.code === statusCodes.IN_PROGRESS) {
// operation (e.g. sign in) is in progress already
} else if (error.code === statusCodes.PLAY_SERVICES_NOT_AVAILABLE) {
// play services not available or outdated
} else {
// some other error happened
}
}
}
}
export default connect(null,null)(GoogleLoginButton);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。