Javascript 如何在reactjs中重新加载时访问gapi.auth2以检查用户是否已登录?

Javascript 如何在reactjs中重新加载时访问gapi.auth2以检查用户是否已登录?,javascript,reactjs,google-login,google-api-js-client,Javascript,Reactjs,Google Login,Google Api Js Client,当我使用react google登录通过google登录时,我需要在react js中维护登录会话 我已经创建了一个登录组件,在其中我呈现了“react GoogleLogin”提供的GoogleLogin组件 我正在我的头组件中调用我的登录组件 与登录相关的一切都已设置好,工作正常,但问题是当我重新加载页面时,用户会在状态设置为初始状态时注销 我假设,它可以通过gapi对象完成,gapi对象在窗口上全局可用。(我已经在html文件的头部添加了google api的脚本标记) 但是当我尝试这样做

当我使用react google登录通过google登录时,我需要在react js中维护登录会话

我已经创建了一个登录组件,在其中我呈现了“react GoogleLogin”提供的GoogleLogin组件

我正在我的头组件中调用我的登录组件

与登录相关的一切都已设置好,工作正常,但问题是当我重新加载页面时,用户会在状态设置为初始状态时注销

我假设,它可以通过gapi对象完成,gapi对象在窗口上全局可用。(我已经在html文件的头部添加了google api的脚本标记)

但是当我尝试这样做时-让auth2=gapi.auth2.getAuthInstance()

我知道auth2没有定义。 然而,gapi的定义是我在控制台上登录时可以看到的

单击LoginSAccess回调中的Login按钮后,我也可以访问auth2对象,但之前不能

因此,我有以下问题

我走对了吗? 如果是,我该如何进行

如果没有,我应该如何在react中维护google登录会话

class Login extends React.Component{
      constructor(props){
       super(props)
       console.log(gapi);  // gapi is available
       let auth2 = gapi.auth2.getAuthInstance();  // auth2 is not accessible here 
     }


    responseGoogle = (response) => {
      let auth2 = gapi.auth2.getAuthInstance();  // auth2 is accessible here 
      let id_token = response.getAuthResponse().id_token;
      let profile = response.getBasicProfile();
      console.log(this);

// api call here to validate the token on the backend which works fine

      fetch();  
}
render(){

        return(<GoogleLogin
            clientId="CLIENT_ID"
            buttonText="Login"
            onSuccess={this.responseGoogle}
            onFailure={this.responseGoogle}
            cookiePolicy={'single_host_origin'}
          />);
    }
}
const mapStateToProps = state => ({
  ...state
 })

const mapDispatchToProps = dispatch => ({
  setLoginInfo: (content) => dispatch(upDateLogin(content))
 })

export default connect(mapStateToProps,mapDispatchToProps)(Login);
类登录扩展了React.Component{
建造师(道具){
超级(道具)
console.log(gapi);//gapi可用
让auth2=gapi.auth2.getAuthInstance();//此处无法访问auth2
}
响应日志=(响应)=>{
让auth2=gapi.auth2.getAuthInstance();//可以在这里访问auth2
让id\u token=response.getAuthResponse().id\u token;
让profile=response.getBasicProfile();
console.log(this);
//在这里调用api以验证后端上的令牌是否正常工作
fetch();
}
render(){
return();
}
}
常量mapStateToProps=状态=>({
…州
})
const mapDispatchToProps=调度=>({
setLoginInfo:(内容)=>调度(更新登录(内容))
})
导出默认连接(mapStateToProps、mapDispatchToProps)(登录);