Я впечатлен тем, насколько просто было создать REST api в Yii2. Тем не менее, я немного затрудняюсь понять базовую аутентификацию. Мои потребности совершенно просты, и я бы хотел, чтобы мое решение последовало примеру.
Мне нужна базовая аутентификация маркера. На данный момент я даже не против жесткого кодирования, но вот что я сделал до сих пор.
У меня есть таблица базы данных для хранения моего единственного токена ApiAccess (id, access_token)
ApiAccess.php - Model - ПРИМЕЧАНИЕ. IDE показывает синтаксическую ошибку в этой первой строке
class ApiAccess extends base\ApiAccessBase implements IdentityInterface
{
public static function findIdentityByAccessToken($token, $type = null)
{
return static::findOne(['access_token' => $token]);
}
}
Module.php - в функции init()
\Yii::$app->user->enableSession = false;
Я сделал ApiController, что каждое последующее существительное расширяет
ApiController.php
use yii\rest\ActiveController;
use yii\filters\auth\HttpBasicAuth;
use app\models\db\ApiAccess;
class ApiController extends ActiveController
{
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => HttpBasicAuth::className(),
];
return $behaviors;
}
}
Как бы то ни было, доступ к конечной точке api в браузере запрашивает имя пользователя и пароль. Запрос через REST Client отображает ошибку доступа.
Как правильно привязать HttpBasicAuth к моей модели ApiAccess?
ИЛИ
Как я могу жестко указать токен доступа api? (первый вариант, очевидно, лучше всего)