Протестирована логика подписи access_token и refresh_token, добавлены базовые скоупы, подчищен проект

This commit is contained in:
ErickSkrauch
2016-02-23 00:49:46 +03:00
parent f5f93ddef1
commit 1c6ba30abf
26 changed files with 318 additions and 357 deletions

View File

@@ -2,6 +2,7 @@
namespace common\components\oauth;
use common\components\oauth\Storage\Redis\AuthCodeStorage;
use common\components\oauth\Storage\Redis\RefreshTokenStorage;
use common\components\oauth\Storage\Yii2\AccessTokenStorage;
use common\components\oauth\Storage\Yii2\ClientStorage;
use common\components\oauth\Storage\Yii2\ScopeStorage;
@@ -43,6 +44,7 @@ class Component extends \yii\base\Component {
->setScopeStorage(new ScopeStorage())
->setSessionStorage(new SessionStorage())
->setAuthCodeStorage(new AuthCodeStorage())
->setRefreshTokenStorage(new RefreshTokenStorage())
->setScopeDelimiter(',');
$this->_authServer = $authServer;

View File

@@ -2,7 +2,7 @@
namespace common\components\oauth\Entity;
use League\OAuth2\Server\Entity\EntityTrait;
use League\OAuth2\Server\Entity\SessionEntity;
use League\OAuth2\Server\Entity\SessionEntity as OriginalSessionEntity;
class AccessTokenEntity extends \League\OAuth2\Server\Entity\AccessTokenEntity {
use EntityTrait;
@@ -17,7 +17,7 @@ class AccessTokenEntity extends \League\OAuth2\Server\Entity\AccessTokenEntity {
* @inheritdoc
* @return static
*/
public function setSession(SessionEntity $session) {
public function setSession(OriginalSessionEntity $session) {
parent::setSession($session);
$this->sessionId = $session->getId();

View File

@@ -32,7 +32,7 @@ class AuthCodeStorage extends AbstractStorage implements AuthCodeInterface {
'id' => $result['id'],
'redirectUri' => $result['client_redirect_uri'],
'expireTime' => $result['expire_time'],
'sessionId' => $result['sessionId'],
'sessionId' => $result['session_id'],
]);
}

View File

@@ -1,5 +1,5 @@
<?php
namespace Fahmiardi\OAuth2\Server\Storage\Redis;
namespace common\components\oauth\Storage\Redis;
use common\components\redis\Key;
use League\OAuth2\Server\Entity\RefreshTokenEntity;

View File

@@ -18,7 +18,7 @@ class AccessTokenStorage extends AbstractStorage implements AccessTokenInterface
* @return OauthAccessToken|null
*/
private function getTokenModel($token) {
if (isset($this->cache[$token])) {
if (!isset($this->cache[$token])) {
$this->cache[$token] = OauthAccessToken::findOne($token);
}

View File

@@ -20,7 +20,7 @@ class Key {
}
public function getValue() {
return $this->getRedis()->get(json_decode($this->key));
return json_decode($this->getRedis()->get($this->key), true);
}
public function setValue($value) {

View File

@@ -10,6 +10,9 @@ use yii\db\ActiveRecord;
*/
class OauthScope extends ActiveRecord {
const OFFLINE_ACCESS = 'offline_access';
const MINECRAFT_SERVER_SESSION = 'minecraft_server_session';
public static function tableName() {
return '{{%oauth_scopes}}';
}

View File

@@ -25,7 +25,7 @@ class OauthSession extends ActiveRecord {
return '{{%oauth_sessions}}';
}
public function getOauthAccessTokens() {
public function getAccessTokens() {
return $this->hasMany(OauthAccessToken::class, ['session_id' => 'id']);
}