oauth->getAccessTokenStorage()->get($token); if ($model === null) { throw new UnauthorizedHttpException('Incorrect token'); } if ($model->isExpired()) { throw new UnauthorizedHttpException('Token expired'); } return new static($model); } public function getAccount(): ?Account { return $this->getSession()->account; } /** * @return string[] */ public function getAssignedPermissions(): array { return array_keys($this->_accessToken->getScopes()); } public function getId(): string { return $this->_accessToken->getId(); } public function getAuthKey() { throw new NotSupportedException('This method used for cookie auth, except we using Bearer auth'); } public function validateAuthKey($authKey) { throw new NotSupportedException('This method used for cookie auth, except we using Bearer auth'); } public static function findIdentity($id) { throw new NotSupportedException('This method used for cookie auth, except we using Bearer auth'); } private function __construct(AccessTokenEntity $accessToken) { $this->_accessToken = $accessToken; } private function getSession(): OauthSession { return OauthSession::findOne($this->_accessToken->getSessionId()); } }