| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | 
							- <?php
 
- /**
 
-  * PHPMailer - PHP email creation and transport class.
 
-  * PHP Version 5.5.
 
-  *
 
-  * @see       https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
 
-  *
 
-  * @author    Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
 
-  * @author    Jim Jagielski (jimjag) <jimjag@gmail.com>
 
-  * @author    Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
 
-  * @author    Brent R. Matzelle (original founder)
 
-  * @copyright 2012 - 2020 Marcus Bointon
 
-  * @copyright 2010 - 2012 Jim Jagielski
 
-  * @copyright 2004 - 2009 Andy Prevost
 
-  * @license   http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 
-  * @note      This program is distributed in the hope that it will be useful - WITHOUT
 
-  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
-  * FITNESS FOR A PARTICULAR PURPOSE.
 
-  */
 
- namespace PHPMailer\PHPMailer;
 
- use League\OAuth2\Client\Grant\RefreshToken;
 
- use League\OAuth2\Client\Provider\AbstractProvider;
 
- use League\OAuth2\Client\Token\AccessToken;
 
- /**
 
-  * OAuth - OAuth2 authentication wrapper class.
 
-  * Uses the oauth2-client package from the League of Extraordinary Packages.
 
-  *
 
-  * @see     http://oauth2-client.thephpleague.com
 
-  *
 
-  * @author  Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
 
-  */
 
- class OAuth
 
- {
 
-     /**
 
-      * An instance of the League OAuth Client Provider.
 
-      *
 
-      * @var AbstractProvider
 
-      */
 
-     protected $provider;
 
-     /**
 
-      * The current OAuth access token.
 
-      *
 
-      * @var AccessToken
 
-      */
 
-     protected $oauthToken;
 
-     /**
 
-      * The user's email address, usually used as the login ID
 
-      * and also the from address when sending email.
 
-      *
 
-      * @var string
 
-      */
 
-     protected $oauthUserEmail = '';
 
-     /**
 
-      * The client secret, generated in the app definition of the service you're connecting to.
 
-      *
 
-      * @var string
 
-      */
 
-     protected $oauthClientSecret = '';
 
-     /**
 
-      * The client ID, generated in the app definition of the service you're connecting to.
 
-      *
 
-      * @var string
 
-      */
 
-     protected $oauthClientId = '';
 
-     /**
 
-      * The refresh token, used to obtain new AccessTokens.
 
-      *
 
-      * @var string
 
-      */
 
-     protected $oauthRefreshToken = '';
 
-     /**
 
-      * OAuth constructor.
 
-      *
 
-      * @param array $options Associative array containing
 
-      *                       `provider`, `userName`, `clientSecret`, `clientId` and `refreshToken` elements
 
-      */
 
-     public function __construct($options)
 
-     {
 
-         $this->provider = $options['provider'];
 
-         $this->oauthUserEmail = $options['userName'];
 
-         $this->oauthClientSecret = $options['clientSecret'];
 
-         $this->oauthClientId = $options['clientId'];
 
-         $this->oauthRefreshToken = $options['refreshToken'];
 
-     }
 
-     /**
 
-      * Get a new RefreshToken.
 
-      *
 
-      * @return RefreshToken
 
-      */
 
-     protected function getGrant()
 
-     {
 
-         return new RefreshToken();
 
-     }
 
-     /**
 
-      * Get a new AccessToken.
 
-      *
 
-      * @return AccessToken
 
-      */
 
-     protected function getToken()
 
-     {
 
-         return $this->provider->getAccessToken(
 
-             $this->getGrant(),
 
-             ['refresh_token' => $this->oauthRefreshToken]
 
-         );
 
-     }
 
-     /**
 
-      * Generate a base64-encoded OAuth token.
 
-      *
 
-      * @return string
 
-      */
 
-     public function getOauth64()
 
-     {
 
-         //Get a new token if it's not available or has expired
 
-         if (null === $this->oauthToken || $this->oauthToken->hasExpired()) {
 
-             $this->oauthToken = $this->getToken();
 
-         }
 
-         return base64_encode(
 
-             'user=' .
 
-             $this->oauthUserEmail .
 
-             "\001auth=Bearer " .
 
-             $this->oauthToken .
 
-             "\001\001"
 
-         );
 
-     }
 
- }
 
 
  |