WIP - Stub to log in with Google

This commit is contained in:
Maxi Redigonda 2020-08-19 17:33:38 -03:00
parent 56ca30a7c3
commit c4e211518c
2 changed files with 22 additions and 20 deletions

View File

@ -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,

View File

@ -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,