class GoogleAuth in Social Auth Google 8.2
Same name and namespace in other branches
- 8 src/Plugin/Network/GoogleAuth.php \Drupal\social_auth_google\Plugin\Network\GoogleAuth
- 3.x src/Plugin/Network/GoogleAuth.php \Drupal\social_auth_google\Plugin\Network\GoogleAuth
Defines a Network Plugin for Social Auth Google.
@package Drupal\social_auth_google\Plugin\Network
Plugin annotation
@Network(
id = "social_auth_google",
social_network = "Google",
type = "social_auth",
handlers = {
"settings": {
"class": "\Drupal\social_auth_google\Settings\GoogleAuthSettings",
"config_id": "social_auth_google.settings"
}
}
)
Hierarchy
- class \Drupal\social_auth\Plugin\Network\NetworkBase extends \Drupal\social_api\Plugin\NetworkBase implements NetworkInterface
- class \Drupal\social_auth_google\Plugin\Network\GoogleAuth implements GoogleAuthInterface
Expanded class hierarchy of GoogleAuth
File
- src/
Plugin/ Network/ GoogleAuth.php, line 28
Namespace
Drupal\social_auth_google\Plugin\NetworkView source
class GoogleAuth extends NetworkBase implements GoogleAuthInterface {
/**
* Sets the underlying SDK library.
*
* @return \League\OAuth2\Client\Provider\Google|false
* The initialized 3rd party library instance.
* False if library could not be initialized.
*
* @throws \Drupal\social_api\SocialApiException
* If the SDK library does not exist.
*/
protected function initSdk() {
$class_name = '\\League\\OAuth2\\Client\\Provider\\Google';
if (!class_exists($class_name)) {
throw new SocialApiException(sprintf('The Google library for PHP League OAuth2 not found. Class: %s.', $class_name));
}
/** @var \Drupal\social_auth_google\Settings\GoogleAuthSettings $settings */
$settings = $this->settings;
if ($this
->validateConfig($settings)) {
// All these settings are mandatory.
$league_settings = [
'clientId' => $settings
->getClientId(),
'clientSecret' => $settings
->getClientSecret(),
'redirectUri' => Url::fromRoute('social_auth_google.callback')
->setAbsolute()
->toString(),
'accessType' => 'offline',
'verify' => FALSE,
'hostedDomain' => $settings
->getRestrictedDomain() == '' ? NULL : $settings
->getRestrictedDomain(),
];
// Proxy configuration data for outward proxy.
$proxyUrl = $this->siteSettings
->get('http_client_config')['proxy']['http'];
if ($proxyUrl) {
$league_settings['proxy'] = $proxyUrl;
}
return new Google($league_settings);
}
return FALSE;
}
/**
* Checks that module is configured.
*
* @param \Drupal\social_auth_google\Settings\GoogleAuthSettings $settings
* The Google auth settings.
*
* @return bool
* True if module is configured.
* False otherwise.
*/
protected function validateConfig(GoogleAuthSettings $settings) {
$client_id = $settings
->getClientId();
$client_secret = $settings
->getClientSecret();
if (!$client_id || !$client_secret) {
$this->loggerFactory
->get('social_auth_google')
->error('Define Client ID and Client Secret on module settings.');
return FALSE;
}
return TRUE;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
GoogleAuth:: |
protected | function | Sets the underlying SDK library. | |
GoogleAuth:: |
protected | function | Checks that module is configured. |