25
Янв
2018

yii2 API HTTP Basic Auth

Пробую сделать тестовый REST API на yii2. В документации указаны три базовых способа аутентификации. Решил попробовать HTTP Basic Auth. Но возникли проблемы и вопросы.

В документации указано, что в контроллере следует настроить поведения

use yii\filters\auth\HttpBasicAuth;

public function behaviors()
{
    $behaviors = parent::behaviors();
    $behaviors['authenticator'] = [
        'class' => HttpBasicAuth::className(),
    ];
    return $behaviors;
}

А после настроить метод findIdentityByAccessToken(), но где? В примере ниже для класса User

use yii\db\ActiveRecord;
use yii\web\IdentityInterface;

class User extends ActiveRecord implements IdentityInterface
{
    public static function findIdentityByAccessToken($token, $type = null)
    {
        return static::findOne(['access_token' => $token]);
    }
}

Ну и более того, выходит, что всё это нужно писать в каждом контроллере для каждой модели. А если их 50? Дублировать одно и то же столько раз? Как тут быть? И что не так? И где настроить метод findIdentityByAccessToken()? Всего лишь нужна общая авторизация на всё API в одном месте

Источник: https://ru.stackoverflow.com/questions/775291/yii2-api-http-basic-auth

Тебе может это понравится...

Добавить комментарий