Вход Регистрация
Файл: phpbb/auth/provider/oauth/service/google.php
Строк: 75
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

namespace phpbbauthprovideroauthservice;

/**
* Google OAuth service
*/
class google extends base
{
    
/**
    * phpBB config
    *
    * @var phpbbconfigconfig
    */
    
protected $config;

    
/**
    * phpBB request
    *
    * @var phpbbrequestrequest_interface
    */
    
protected $request;

    
/**
    * Constructor
    *
    * @param    phpbbconfigconfig                $config
    * @param    phpbbrequestrequest_interface     $request
    */
    
public function __construct(phpbbconfigconfig $configphpbbrequestrequest_interface $request)
    {
        
$this->config $config;
        
$this->request $request;
    }

    
/**
    * {@inheritdoc}
    */
    
public function get_auth_scope()
    {
        return array(
            
'userinfo_email',
            
'userinfo_profile',
        );
    }

    
/**
    * {@inheritdoc}
    */
    
public function get_service_credentials()
    {
        return array(
            
'key'        => $this->config['auth_oauth_google_key'],
            
'secret'    => $this->config['auth_oauth_google_secret'],
        );
    }

    
/**
    * {@inheritdoc}
    */
    
public function perform_auth_login()
    {
        if (!(
$this->service_provider instanceof OAuthOAuth2ServiceGoogle))
        {
            throw new 
exception('AUTH_PROVIDER_OAUTH_ERROR_INVALID_SERVICE_TYPE');
        }

        
// This was a callback request, get the token
        
$this->service_provider->requestAccessToken($this->request->variable('code'''));

        
// Send a request with it
        
$result json_decode($this->service_provider->request('https://www.googleapis.com/oauth2/v1/userinfo'), true);

        
// Return the unique identifier
        
return $result['id'];
    }

    
/**
    * {@inheritdoc}
    */
    
public function perform_token_auth()
    {
        if (!(
$this->service_provider instanceof OAuthOAuth2ServiceGoogle))
        {
            throw new 
exception('AUTH_PROVIDER_OAUTH_ERROR_INVALID_SERVICE_TYPE');
        }

        
// Send a request with it
        
$result json_decode($this->service_provider->request('https://www.googleapis.com/oauth2/v1/userinfo'), true);

        
// Return the unique identifier
        
return $result['id'];
    }
}
Онлайн: 1
Реклама