mirror of
https://gitee.com/koogua/course-tencent-cloud.git
synced 2025-06-23 03:50:56 +08:00
58 lines
1.3 KiB
PHP
58 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Tasks;
|
|
|
|
use App\Models\AccessToken as AccessTokenModel;
|
|
use App\Models\RefreshToken as RefreshTokenModel;
|
|
use Phalcon\Cli\Task;
|
|
use Phalcon\Mvc\Model\Resultset;
|
|
use Phalcon\Mvc\Model\ResultsetInterface;
|
|
|
|
class CleanTokenTask extends Task
|
|
{
|
|
|
|
public function mainAction()
|
|
{
|
|
$accessTokens = $this->findAccessTokens();
|
|
|
|
if ($accessTokens->count() > 0) {
|
|
$accessTokens->delete();
|
|
}
|
|
|
|
$refreshTokens = $this->findRefreshTokens();
|
|
|
|
if ($refreshTokens->count() > 0) {
|
|
$refreshTokens->delete();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 查找待清理访问令牌
|
|
*
|
|
* @return ResultsetInterface|Resultset|AccessTokenModel[]
|
|
*/
|
|
protected function findAccessTokens()
|
|
{
|
|
$expiryTime = strtotime('-30 days');
|
|
|
|
return AccessTokenModel::query()
|
|
->where('expiry_time < :expiry_time:', ['expiry_time' => $expiryTime])
|
|
->execute();
|
|
}
|
|
|
|
/**
|
|
* 查找待清理刷新令牌
|
|
*
|
|
* @return ResultsetInterface|Resultset|RefreshTokenModel[]
|
|
*/
|
|
protected function findRefreshTokens()
|
|
{
|
|
$expiryTime = strtotime('-30 days');
|
|
|
|
return RefreshTokenModel::query()
|
|
->where('expiry_time < :expiry_time:', ['expiry_time' => $expiryTime])
|
|
->execute();
|
|
}
|
|
|
|
}
|