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: {}, recoverFormErrors: {},
recoverSent: false, recoverSent: false,
loadingLogin: false, loadingLogin: false,
loadingRecover: false loadingRecover: false,
sent: false
}; };
componentDidUpdate(prevProps) { componentDidUpdate(prevProps) {
@ -43,17 +45,6 @@ class MainHomePageLoginWidget extends React.Component {
} }
renderLogin() { 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) => { const defaultGoogleHandler = (response) => {
console.log(response); console.log(response);
} }
@ -66,7 +57,7 @@ class MainHomePageLoginWidget extends React.Component {
height: 30, height: 30,
longtitle: true, longtitle: true,
theme: 'dark', theme: 'dark',
onsuccess: onGoogleLoginSuccess, onsuccess: this.onGoogleLoginSuccess.bind(this),
onfailure: defaultGoogleHandler onfailure: defaultGoogleHandler
}) })
}) })
@ -153,6 +144,15 @@ class MainHomePageLoginWidget extends React.Component {
this.props.dispatch(SessionActions.login(formState)); 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) { onForgotPasswordSubmit(formState) {
this.setState({ this.setState({
loadingRecover: true, loadingRecover: true,

View File

@ -52,20 +52,22 @@ class LoginController extends Controller {
$this->clearOldRememberTokens(); $this->clearOldRememberTokens();
if ($this->checkGoogleLogin()) { 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 $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')); $payload = $client->verifyIdToken(Controller::request('googleId'));
if ($payload) { if ($payload) {
$userid = $payload['sub']; // $userid = $payload['sub'];
ob_start(); // ob_start();
var_dump($payload); // var_dump($payload);
$result = ob_get_clean(); // $result = ob_get_clean();
Response::respondSuccess(array('googleUserData' => $result));
$this->userInstance = User::getUser($payload['email'], 'email');
Session::getInstance()->createSession($this->userInstance->id, false);
Response::respondSuccess($this->getUserData());
return; return;
} else { } else {
echo "Invalid token" . PHP_EOL; echo "Invalid token" . PHP_EOL;
} }
Response::respondSuccess(array( Response::respondSuccess(array(
'userId' => -1, 'userId' => -1,