accounts/api/modules/authserver/models/ValidateForm.php

37 lines
906 B
PHP
Raw Normal View History

<?php
namespace api\modules\authserver\models;
use api\models\base\ApiForm;
use api\modules\authserver\exceptions\ForbiddenOperationException;
use api\modules\authserver\validators\RequiredValidator;
use common\models\MinecraftAccessKey;
class ValidateForm extends ApiForm {
public $accessToken;
public function rules() {
return [
[['accessToken'], RequiredValidator::class],
];
}
2018-04-18 02:17:25 +05:30
public function validateToken(): bool {
$this->validate();
/** @var MinecraftAccessKey|null $result */
$result = MinecraftAccessKey::findOne($this->accessToken);
if ($result === null) {
throw new ForbiddenOperationException('Invalid token.');
}
if ($result->isExpired()) {
$result->delete();
throw new ForbiddenOperationException('Token expired.');
}
return true;
}
}