Working on OAuth (#3692)

This commit is contained in:
David Bomba 2020-05-13 16:20:05 +10:00 committed by GitHub
parent c3c39ffae2
commit 350b61dc3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 14 deletions

View File

@ -398,9 +398,7 @@ class LoginController extends BaseController
// $user = $oauth->getProvider(request()->input('provider'))->getTokenResponse(request()->input('id_token')); // $user = $oauth->getProvider(request()->input('provider'))->getTokenResponse(request()->input('id_token'));
// // server_auth_code
// // access_token
// // id_token
// if ($user = OAuth::handleAuth($socialite_user, $provider)) { // if ($user = OAuth::handleAuth($socialite_user, $provider)) {
// $user->oauth_user_token = $socialite_user->token; // $user->oauth_user_token = $socialite_user->token;
@ -446,6 +444,10 @@ class LoginController extends BaseController
// } // }
} }
//// // server_auth_code
// // access_token
// // id_token
//
private function handleGoogleOauth() private function handleGoogleOauth()
{ {
$user = false; $user = false;
@ -454,31 +456,35 @@ class LoginController extends BaseController
$user = $google->getTokenResponse(request()->input('id_token')); $user = $google->getTokenResponse(request()->input('id_token'));
info(print_r($user,1));
if(is_array($user)) if(is_array($user))
{ {
$query = [ $query = [
'oauth_user_id' => $google->harvestSubField($user), 'oauth_user_id' => $google->harvestSubField($user),
'oauth_provider_id'=>$provider 'oauth_provider_id'=> 'google'
]; ];
if ($user = MultiDB::hasUser($query)) if ($existing_user = MultiDB::hasUser($query))
{ {
Auth::login($user, true); Auth::login($existing_user, true);
$ct = CompanyUser::whereUserId(auth()->user()->id); $ct = CompanyUser::whereUserId(auth()->user()->id);
return $this->listResponse($ct); return $this->listResponse($ct);
} }
} }
else if($user && request()->input('create') == 'true') {
if($user){
//if($user && request()->input('create') == 'true') {
//server_auth_code //server_auth_code
$client = new \Google_Client(); $client = new \Google_Client();
$accessToken = $client->fetchAccessTokenWithAuthCode(request()->input('server_auth_code')); //$accessToken = $client->fetchAccessTokenWithAuthCode(request()->input('server_auth_code'));
$client->setAccessToken($accessToken); //$client->setAccessToken($accessToken);
$client->setAccessToken(request()->input('access_token'));
$refresh_token = $client->getRefreshToken(); $refresh_token = $client->getRefreshToken();
$name = OAuth::splitName($google->harvestName($user)); $name = OAuth::splitName($google->harvestName($user));
@ -491,7 +497,7 @@ info(print_r($user,1));
'oauth_user_id' => $google->harvestSubField($user), 'oauth_user_id' => $google->harvestSubField($user),
'oauth_user_token' => request()->input('access_token'), 'oauth_user_token' => request()->input('access_token'),
'oauth_user_refresh_token' => $refresh_token, 'oauth_user_refresh_token' => $refresh_token,
'oauth_provider_id' => $provider 'oauth_provider_id' => 'google'
]; ];
MultiDB::setDefaultDatabase(); MultiDB::setDefaultDatabase();

View File

@ -20,7 +20,7 @@ class Google implements ProviderInterface
return $payload['sub']; // user ID return $payload['sub']; // user ID
} }
public function havestName($payload) public function harvestName($payload)
{ {
return $payload['name']; return $payload['name'];
} }

View File

@ -8,5 +8,5 @@ interface ProviderInterface
public function harvestEmail($response); public function harvestEmail($response);
public function havestName($response); public function harvestName($response);
} }