46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
class OAuth
|
|
{
|
|
private $oauthUserEmail = '';
|
|
private $oauthRefreshToken = '';
|
|
private $oauthClientId = '';
|
|
private $oauthClientSecret = '';
|
|
|
|
public function __construct(
|
|
$UserEmail,
|
|
$ClientSecret,
|
|
$ClientId,
|
|
$RefreshToken
|
|
) {
|
|
$this->oauthClientId = $ClientId;
|
|
$this->oauthClientSecret = $ClientSecret;
|
|
$this->oauthRefreshToken = $RefreshToken;
|
|
$this->oauthUserEmail = $UserEmail;
|
|
}
|
|
|
|
private function getProvider() {
|
|
return new League\OAuth2\Client\Provider\Google([
|
|
'clientId' => $this->oauthClientId,
|
|
'clientSecret' => $this->oauthClientSecret
|
|
]);
|
|
}
|
|
|
|
private function getGrant()
|
|
{
|
|
return new \League\OAuth2\Client\Grant\RefreshToken();
|
|
}
|
|
|
|
private function getToken()
|
|
{
|
|
$provider = $this->getProvider();
|
|
$grant = $this->getGrant();
|
|
return $provider->getAccessToken($grant, ['refresh_token' => $this->oauthRefreshToken]);
|
|
}
|
|
|
|
public function getOauth64()
|
|
{
|
|
$token = $this->getToken();
|
|
return base64_encode("user=" . $this->oauthUserEmail . "\001auth=Bearer " . $token . "\001\001");
|
|
}
|
|
}
|