whoami7 - Manager
:
/
home
/
kckglobal
/
cloud.kckglobal.net
/
bkp
/
application
/
controllers
/
admin
/
Upload File:
files >> //home/kckglobal/cloud.kckglobal.net/bkp/application/controllers/admin/Smtp_oauth_google.php
<?php /** * Aliases for League Provider Classes * Make sure you have added these to your composer.json and run `composer install` * Plenty to choose from here: * @see http://oauth2-client.thephpleague.com/providers/thirdparty/ */ //@see https://github.com/thephpleague/oauth2-google use League\OAuth2\Client\Provider\Google; class Smtp_oauth_google extends AdminController { public function token() { $providerName = 'Google'; $clientId = get_option('google_mail_client_id'); $clientSecret = $this->encryption->decrypt(get_option('google_mail_client_secret')); if (!$clientId && !$clientSecret) { die('Add client ID and Client Secret in settings.'); } $redirectUri = admin_url('smtp_oauth_google/token'); $params = [ 'clientId' => $clientId, 'clientSecret' => $clientSecret, 'redirectUri' => $redirectUri, 'accessType' => 'offline', ]; $options = []; $provider = null; switch ($providerName) { case 'Google': $provider = new Google($params); $options = ['scope' => [ 'https://mail.google.com/' ]]; break; } if (null === $provider) { exit('Provider missing'); } if (!isset($_GET['code'])) { //If we don't have an authorization code then get one $authUrl = $provider->getAuthorizationUrl($options); $this->session->set_userdata(['oauth2state' => $provider->getState()]); header('Location: ' . $authUrl); exit; //Check given state against previously stored one to mitigate CSRF attack } elseif (empty($_GET['state']) || ($_GET['state'] !== $this->session->userdata('oauth2state'))) { $this->session->unset_userdata('oauth2state'); exit('Invalid state'); } try { //Try to get an access token (using the authorization code grant) $token = $provider->getAccessToken( 'authorization_code', [ 'code' => $_GET['code'], ] ); //Use this to interact with an API on the users behalf //Use this to get a new access token if the old one expires if($refreshToken = $token->getRefreshToken()) { update_option('google_mail_refresh_token', $refreshToken); } update_option('smtp_email', $provider->getResourceOwner($token)->getEmail()); } catch(Exception $e) { set_alert('warning', $e->getMessage()); } redirect(admin_url('settings?group=email')); } }
Copyright ©2021 || Defacer Indonesia