Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

google.php

Zuletzt modifiziert: 09.10.2024, 12:57 - Dateigröße: 2.12 KiB


 001  <?php
 002  /**
 003  *
 004  * This file is part of the phpBB Forum Software package.
 005  *
 006  * @copyright (c) phpBB Limited <https://www.phpbb.com>
 007  * @license GNU General Public License, version 2 (GPL-2.0)
 008  *
 009  * For full copyright and license information, please see
 010  * the docs/CREDITS.txt file.
 011  *
 012  */
 013   
 014  namespace phpbb\auth\provider\oauth\service;
 015   
 016  /**
 017  * Google OAuth service
 018  */
 019  class google extends base
 020  {
 021      /**
 022      * phpBB config
 023      *
 024      * @var \phpbb\config\config
 025      */
 026      protected $config;
 027   
 028      /**
 029      * phpBB request
 030      *
 031      * @var \phpbb\request\request_interface
 032      */
 033      protected $request;
 034   
 035      /**
 036      * Constructor
 037      *
 038      * @param    \phpbb\config\config                $config
 039      * @param    \phpbb\request\request_interface     $request
 040      */
 041      public function __construct(\phpbb\config\config $config, \phpbb\request\request_interface $request)
 042      {
 043          $this->config = $config;
 044          $this->request = $request;
 045      }
 046   
 047      /**
 048      * {@inheritdoc}
 049      */
 050      public function get_auth_scope()
 051      {
 052          return array(
 053              'userinfo_email',
 054              'userinfo_profile',
 055          );
 056      }
 057   
 058      /**
 059      * {@inheritdoc}
 060      */
 061      public function get_service_credentials()
 062      {
 063          return array(
 064              'key'        => $this->config['auth_oauth_google_key'],
 065              'secret'    => $this->config['auth_oauth_google_secret'],
 066          );
 067      }
 068   
 069      /**
 070      * {@inheritdoc}
 071      */
 072      public function perform_auth_login()
 073      {
 074          if (!($this->service_provider instanceof \OAuth\OAuth2\Service\Google))
 075          {
 076              throw new exception('AUTH_PROVIDER_OAUTH_ERROR_INVALID_SERVICE_TYPE');
 077          }
 078   
 079          // This was a callback request, get the token
 080          $this->service_provider->requestAccessToken($this->request->variable('code', ''));
 081   
 082          // Send a request with it
 083          $result = json_decode($this->service_provider->request('https://www.googleapis.com/oauth2/v1/userinfo'), true);
 084   
 085          // Return the unique identifier
 086          return $result['id'];
 087      }
 088   
 089      /**
 090      * {@inheritdoc}
 091      */
 092      public function perform_token_auth()
 093      {
 094          if (!($this->service_provider instanceof \OAuth\OAuth2\Service\Google))
 095          {
 096              throw new exception('AUTH_PROVIDER_OAUTH_ERROR_INVALID_SERVICE_TYPE');
 097          }
 098   
 099          // Send a request with it
 100          $result = json_decode($this->service_provider->request('https://www.googleapis.com/oauth2/v1/userinfo'), true);
 101   
 102          // Return the unique identifier
 103          return $result['id'];
 104      }
 105  }
 106