2026-02-05 17:08:59 +03:00

68 lines
1.6 KiB
PHP

<?php
require_once NSL_PATH . '/includes/oauth2.php';
class NextendSocialProviderGoogleClient extends NextendSocialOauth2 {
protected $access_token_data = array(
'access_token' => '',
'expires_in' => -1,
'created' => -1
);
private $accessType = 'offline';
private $prompt = 'select_account';
protected $scopes = array(
'email',
'profile'
);
protected $endpointAuthorization = 'https://accounts.google.com/o/oauth2/v2/auth';
protected $endpointAccessToken = 'https://oauth2.googleapis.com/token';
protected $endpointRestAPI = 'https://www.googleapis.com/oauth2/v2/';
protected $defaultRestParams = array(
'alt' => 'json'
);
/**
* @param string $access_token_data
*/
public function setAccessTokenData($access_token_data) {
$this->access_token_data = json_decode($access_token_data, true);
}
public function createAuthUrl() {
$args = array(
'access_type' => urlencode($this->accessType)
);
if ($this->prompt != '') {
$args['prompt'] = urlencode($this->prompt);
}
return add_query_arg($args, parent::createAuthUrl());
}
/**
* @param string $prompt
*/
public function setPrompt($prompt) {
$this->prompt = $prompt;
}
/**
* @param $response
*
* @throws Exception
*/
protected function errorFromResponse($response) {
if (isset($response['error']['message'])) {
throw new NSLSanitizedRequestErrorMessageException($response['error']['message']);
}
}
}