Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Authentication/Type/Google/Extractor/Google.php
Строк: 56
<?php
namespace ConcreteCoreAuthenticationTypeGoogleExtractor;

use 
OAuthCommonHttpUriUri;
use 
OAuthUserDataExtractorLazyExtractor;

class 
Google extends LazyExtractor
{

    public function 
__construct()
    {
        
parent::__construct(
            
$this->getDefaultLoadersMap(),
            
$this->getNormalizersMap(),
            
$this->getSupports());
    }

    protected function 
getNormalizersMap()
    {
        return array(
            
self::FIELD_EMAIL          => 'email',
            
self::FIELD_FIRST_NAME     => 'firstName',
            
self::FIELD_LAST_NAME      => 'lastName',
            
self::FIELD_UNIQUE_ID      => 'id',
            
self::FIELD_USERNAME       => 'email',
            
self::FIELD_IMAGE_URL      => 'image',
            
self::FIELD_VERIFIED_EMAIL => 'emailVerified',
            
self::FIELD_EXTRA          => 'extras');
    }

    public function 
getSupports()
    {
        return array(
            
self::FIELD_EMAIL,
            
self::FIELD_FIRST_NAME,
            
self::FIELD_LAST_NAME,
            
self::FIELD_UNIQUE_ID,
            
self::FIELD_USERNAME,
            
self::FIELD_IMAGE_URL,
            
self::FIELD_VERIFIED_EMAIL,
            
self::FIELD_EXTRA);
    }

    public function 
extrasNormalizer($data)
    {
        
$hd array_get($data'hd'null);
        if (!
$hd) {
            
$email $this->emailNormalizer($data);
            
$pos strrpos($email'@');
            if (
$pos !== false) {
                
$hd substr($email$pos 1);
            } else {
                
$hd null;
            }
        }
        return array(
'domain' => $hd);
    }

    public function 
imageNormalizer($data)
    {
        return 
array_get($data'picture'null);
    }

    public function 
idNormalizer($data)
    {
        return 
array_get($data'id'null);
    }

    public function 
emailVerifiedNormalizer($data)
    {
        return 
array_get($data'verified_email'false);
    }

    public function 
firstNameNormalizer($data)
    {
        return 
array_get($data'given_name'null);
    }

    public function 
lastNameNormalizer($data)
    {
        return 
array_get($data'family_name'null);
    }

    public function 
emailNormalizer($data)
    {
        return 
array_get($data'email'null);
    }

    public function 
profileLoader()
    {
        
$url = new Uri('https://www.googleapis.com/oauth2/v1/userinfo');
        return 
json_decode($this->service->request($url), true);
    }

}
Онлайн: 1
Реклама