Хранилище access_token вынесено в redis

Переписана логика связи моделей для oAuth процесса
This commit is contained in:
ErickSkrauch
2016-11-30 02:19:14 +03:00
parent 4f259a9dc7
commit 422d5c4fd4
12 changed files with 297 additions and 146 deletions

View File

@@ -15,6 +15,7 @@ use yii\db\ActiveRecord;
*
* Отношения:
* @property OauthSession $session
* @deprecated
*/
class OauthAccessToken extends ActiveRecord {

View File

@@ -2,6 +2,7 @@
namespace common\models;
use common\components\Redis\Set;
use Yii;
use yii\db\ActiveRecord;
/**
@@ -46,6 +47,14 @@ class OauthSession extends ActiveRecord {
}
$this->getScopes()->delete();
/** @var \api\components\OAuth2\Storage\RefreshTokenStorage $refreshTokensStorage */
$refreshTokensStorage = Yii::$app->oauth->getAuthServer()->getRefreshTokenStorage();
$refreshTokensSet = $refreshTokensStorage->sessionHash($this->id);
foreach ($refreshTokensSet->members() as $refreshTokenId) {
$refreshTokensStorage->delete($refreshTokensStorage->get($refreshTokenId));
}
$refreshTokensSet->delete();
return true;
}