mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-01 04:37:38 -04:00
Add in verification of Google OAuth using an access token
This commit is contained in:
parent
4db163c4e1
commit
a8ecd8de64
@ -93,6 +93,7 @@ class DesignFilters extends QueryFilters
|
|||||||
|
|
||||||
return $this->builder->where('is_template', $bool_val);
|
return $this->builder->where('is_template', $bool_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filter the designs by `is_custom` column.
|
* Filter the designs by `is_custom` column.
|
||||||
*
|
*
|
||||||
|
@ -527,7 +527,10 @@ class LoginController extends BaseController
|
|||||||
|
|
||||||
if (request()->has('id_token')) {
|
if (request()->has('id_token')) {
|
||||||
$user = $google->getTokenResponse(request()->input('id_token'));
|
$user = $google->getTokenResponse(request()->input('id_token'));
|
||||||
} else {
|
}elseif(request()->has('access_token')){
|
||||||
|
$user = $google->harvestUser(request()->input('access_token'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
return response()->json(['message' => 'Illegal request'], 403);
|
return response()->json(['message' => 'Illegal request'], 403);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
namespace App\Libraries\OAuth\Providers;
|
namespace App\Libraries\OAuth\Providers;
|
||||||
|
|
||||||
use Google_Client;
|
use Google_Client;
|
||||||
|
|
||||||
class Google implements ProviderInterface
|
class Google implements ProviderInterface
|
||||||
{
|
{
|
||||||
public function getTokenResponse($token)
|
public function getTokenResponse($token)
|
||||||
@ -27,4 +26,28 @@ class Google implements ProviderInterface
|
|||||||
{
|
{
|
||||||
return $payload['name'];
|
return $payload['name'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function harvestUser($access_token)
|
||||||
|
{
|
||||||
|
$client = new Google_Client();
|
||||||
|
$client->setClientId(config('ninja.auth.google.client_id'));
|
||||||
|
$client->setClientSecret(config('ninja.auth.google.client_secret'));
|
||||||
|
$client->setAccessToken($access_token);
|
||||||
|
|
||||||
|
$oauth2 = new \Google_Service_Oauth2($client);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$userInfo = $oauth2->userinfo->get();
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'email' => $userInfo['email'],
|
||||||
|
'sub' => $userInfo['id'],
|
||||||
|
'name' => $userInfo['name'],
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -743,29 +743,20 @@ class BaseDriver extends AbstractPaymentDriver
|
|||||||
}
|
}
|
||||||
|
|
||||||
$invoices_string = str_replace(["*","<",">","'",'"'], "-", $invoices_string);
|
$invoices_string = str_replace(["*","<",">","'",'"'], "-", $invoices_string);
|
||||||
// $invoices_string = "I-".$invoices_string;
|
|
||||||
// $invoices_string = substr($invoices_string, 0, 22);
|
|
||||||
|
|
||||||
// 2023-11-02 - improve the statement descriptor for string
|
// 2023-11-02 - improve the statement descriptor for string
|
||||||
|
|
||||||
$company_name = $this->client->company->present()->name();
|
$company_name = $this->client->company->present()->name();
|
||||||
|
$company_name = str_replace(["*","<",">","'",'"'], "-", $company_name);
|
||||||
|
|
||||||
if(ctype_digit(substr($company_name, 0, 1)))
|
if(ctype_digit(substr($company_name, 0, 1))) {
|
||||||
$company_name = "X" . $company_name;
|
$company_name = "I" . $company_name;
|
||||||
|
}
|
||||||
$suffix = strlen($invoices_string) + 1;
|
|
||||||
|
|
||||||
$length = 22 - $suffix;
|
|
||||||
|
|
||||||
$company_name = substr($company_name, 0, $length);
|
|
||||||
|
|
||||||
|
$company_name = substr($company_name, 0, 11);
|
||||||
$descriptor = "{$company_name} {$invoices_string}";
|
$descriptor = "{$company_name} {$invoices_string}";
|
||||||
|
$descriptor = substr($descriptor, 0, 22);
|
||||||
$invoices_string = str_pad($descriptor, 5, ctrans('texts.invoice'), STR_PAD_RIGHT);
|
return $descriptor;
|
||||||
$invoices_string = substr($invoices_string, 0, 22);
|
|
||||||
|
|
||||||
// $invoices_string = str_pad($invoices_string, 5, ctrans('texts.invoice'), STR_PAD_LEFT);
|
|
||||||
|
|
||||||
return $invoices_string;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user