我正在使用 React 构建应用程序,并且正在使用 React-google-login。 登录成功,但未触发onSuccess事件 HTTP 请求正在工作并返回所有信息
export class Auth extends Component {
constructor(props) {
super(props);
this.state = {
isLogined: false,
accessToken: ''
};
this.login = this.login.bind(this);
this.handleLoginFailure = this.handleLoginFailure.bind(this);
this.logout = this.logout.bind(this);
this.handleLogoutFailure = this.handleLogoutFailure.bind(this);
}
login (response) {
console.log('login!!');
if(response.accessToken){
this.setState(state => ({
isLogined: true,
accessToken: response.accessToken
}));
}
}
logout (response) {
this.setState(state => ({
isLogined: false,
accessToken: ''
}));
}
handleLoginFailure (response) {
alert('Failed to log in')
}
handleLogoutFailure (response) {
alert('Failed to log out')
}
render() {
return (
<div>
<GoogleLogin
clientId="CLIENTID"
buttonText='Login'
onSuccess={ this.login }
onFailure={ this.handleLoginFailure }
cookiePolicy={ 'single_host_origin' }
responseType='code,token'
/>
</div>
)
}
}
export default Auth;
我尝试了一些教程并观看了文档,但没有任何效果
尝试一下:
export class Auth extends Component {
state = {
isLogined: false,
accessToken: ''
};
login = (response) => {
console.log('login!!');
if(response.accessToken){
this.setState(state => ({
isLogined: true,
accessToken: response.accessToken
}));
}
}
render() {
return (
<div>
<GoogleLogin
clientId="CLIENTID"
buttonText='Login'
onSuccess={login}
cookiePolicy={ 'single_host_origin' }
responseType='code,token'
/>
</div>
)
}
}
export default Auth;
对我来说,是 Privacy Badger 阻止了它。一旦我禁用它,回调就会再次开始工作。
我会推荐一个
onClick
和一个onSuccess
,它可以很好地完成您想要它做的任何事情,如果这不起作用,那么也许可以使登录按钮具有功能onSuccess
和onClick
,但采取我的持保留态度地说,我对编码真的很陌生。