Page Menu
Home
WMGMC Issues
搜索
Configure Global Search
登录
Files
F16299
OAuth.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
订阅
标记用于日后
授予令牌
Size
3 KB
Referenced Files
None
订阅者
None
OAuth.php
View Options
<?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
implements
OAuthTokenProvider
{
/**
* 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
.
"
\0
01auth=Bearer "
.
$this
->
oauthToken
.
"
\0
01
\0
01"
);
}
}
File Metadata
详情
附加的
Mime Type
text/x-php
Expires
9月 12 Fri, 3:03 AM (20 h, 5 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5752
默认替代文本
OAuth.php (3 KB)
Attached To
Mode
rMAILCOW mailcow-tracking
附加的
Detach File
Event Timeline
Log In to Comment