diff --git a/client/src/app/main/main-home/main-home-page-login-widget.js b/client/src/app/main/main-home/main-home-page-login-widget.js index 16a59f2f..99fbc698 100644 --- a/client/src/app/main/main-home/main-home-page-login-widget.js +++ b/client/src/app/main/main-home/main-home-page-login-widget.js @@ -24,7 +24,9 @@ class MainHomePageLoginWidget extends React.Component { recoverFormErrors: {}, recoverSent: false, loadingLogin: false, - loadingRecover: false + loadingRecover: false, + + sent: false }; componentDidUpdate(prevProps) { @@ -43,17 +45,6 @@ class MainHomePageLoginWidget extends React.Component { } renderLogin() { - const onGoogleLoginSuccess = (googleUser) => { - let id_token = googleUser.getAuthResponse().id_token; - - API.call({ - path: '/user/login', - data: { - 'googleId': id_token - } - }).then(() => {}).catch(() => {}); - } - const defaultGoogleHandler = (response) => { console.log(response); } @@ -66,7 +57,7 @@ class MainHomePageLoginWidget extends React.Component { height: 30, longtitle: true, theme: 'dark', - onsuccess: onGoogleLoginSuccess, + onsuccess: this.onGoogleLoginSuccess.bind(this), onfailure: defaultGoogleHandler }) }) @@ -153,6 +144,15 @@ class MainHomePageLoginWidget extends React.Component { this.props.dispatch(SessionActions.login(formState)); } + onGoogleLoginSuccess(googleUser) { + if (!this.state.sent) { + let id_token = googleUser.getAuthResponse().id_token; + console.log(id_token); + this.props.dispatch(SessionActions.login({'googleId': id_token, 'remember': 1})); + this.setState({sent: true}); + } + } + onForgotPasswordSubmit(formState) { this.setState({ loadingRecover: true, diff --git a/server/controllers/user/login.php b/server/controllers/user/login.php index 6fe99717..ea0bf513 100755 --- a/server/controllers/user/login.php +++ b/server/controllers/user/login.php @@ -52,20 +52,22 @@ class LoginController extends Controller { $this->clearOldRememberTokens(); if ($this->checkGoogleLogin()) { - $client = new Google_Client(['client_id' => '50174278643-gtvjdpm5rmkv75lf3jsp95iv77a2usgu.apps.googleusercontent.com']); // Specify the CLIENT_ID of the app that accesses the backend $payload = $client->verifyIdToken(Controller::request('googleId')); if ($payload) { - $userid = $payload['sub']; - ob_start(); - var_dump($payload); - $result = ob_get_clean(); - Response::respondSuccess(array('googleUserData' => $result)); + // $userid = $payload['sub']; + // ob_start(); + // var_dump($payload); + // $result = ob_get_clean(); + + $this->userInstance = User::getUser($payload['email'], 'email'); + + Session::getInstance()->createSession($this->userInstance->id, false); + Response::respondSuccess($this->getUserData()); return; } else { echo "Invalid token" . PHP_EOL; } - Response::respondSuccess(array( 'userId' => -1,