React 中的 Google 登录未触发事件

问题描述 投票:0回答:3

我正在使用 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;

我尝试了一些教程并观看了文档,但没有任何效果

javascript reactjs google-authentication
3个回答
0
投票

尝试一下:

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;


0
投票

对我来说,是 Privacy Badger 阻止了它。一旦我禁用它,回调就会再次开始工作。


0
投票

我会推荐一个

onClick
和一个
onSuccess
,它可以很好地完成您想要它做的任何事情,如果这不起作用,那么也许可以使登录按钮具有功能
onSuccess
onClick
,但采取我的持保留态度地说,我对编码真的很陌生。

© www.soinside.com 2019 - 2024. All rights reserved.