Страница 1 из 1

REST API. Собственный метод аутентификации

Добавлено: 2020.12.13, 20:14
dkw15g
Приветствую! Переписываю самописное API на Yii2. В самописном API аутентификация реализована по логину, паролю и инн, такую логику аутентификации нужно перенести на Yii2. Первое что пришло на ум:
в конфигурации приложения:

Код: Выделить всё

        'user' => [
            'identityClass' => 'app\models\User',
            //'enableAutoLogin' => true,
            'enableSession' => false,
        ],
В классе models\User реализовал IdentityInterface. Проверку существования пользователя сделал в:

Код: Выделить всё

    public static function findIdentityByAccessToken($token, $type = null)
    {
        $headers = Yii::$app->request->headers;

        if (!isset($headers['inn'], $headers['login'], $headers['password'],
            $headers['ofd_api_key'])) {
            throw new \yii\web\UnauthorizedHttpException('Не достаточно параметров для авторизации', 401);
        }

        if (!static::findOne(['access_token' => $token])) {
            throw new \yii\web\UnauthorizedHttpException('Нет авторизации', 401);
        }

        $model = new User;

        $userData = $model->findOne([
            'inn' => $headers['inn'],
            'login' => $headers['login']
        ]);

        if (!$userData) {
            throw new \yii\web\UnauthorizedHttpException('Нет авторизации', 401);
        }

        return $userData;
    }
Это работает, но название метода findIdentityByAccessToken не вяжется с тем, что в нем делается. Как мне реализовать собственный метод аутентификации?

Re: REST API. Собственный метод аутентификации

Добавлено: 2020.12.15, 18:14
samdark
Я бы сделал свой InnLoginPassowrdAuth extends AuthMethod.

Re: REST API. Собственный метод аутентификации

Добавлено: 2020.12.15, 22:27
dkw15g
samdark писал(а): 2020.12.15, 18:14 Я бы сделал свой InnLoginPassowrdAuth extends AuthMethod.
Спасибо! Это работает.