Какую аутентификацию я должен использовать в API, разработанном с Yii 2? - PullRequest
0 голосов
/ 25 апреля 2018

У меня вопрос по поводу аутентификации REST API в Yii Framework.В конечной точке входа в систему пользователь должен ввести адрес электронной почты и пароль, если он сопоставляет данные на сервере, возвращает токен доступа и будет ли этот токен использоваться для других конечных точек?Это или я неправильно понял?

Если так, должна ли аутентификация входа в систему отличаться от других конечных точек?Какую аутентификацию я должен использовать в каждой из этих ситуаций?

HttpBasicAuth

HttpBearerAuth

QueryParamAuth

Другой вопрос, который у меня есть, касается конечной точки реестра, должна ли онанет аутентификации?Как я могу защитить этот URL-адрес, чтобы предотвратить подделку нескольких записей?

1 Ответ

0 голосов
/ 26 апреля 2018

Убедитесь, что ваши контроллеры расширены от yii\rest\Controller или yii\rest\ActiveController.

Для входа в систему и регистрации вы должны отправить запрос POST и подтвердить ввод пользователя. Чтобы избежать нескольких поддельных записей, вы можете изменить адрес электронной почты или номер телефона должен быть уникальным и отправив ссылку для подтверждения или код.

Для других контроллеров, которым требуется аутентификация, вы можете использовать HttpBearerAuth::className() или QueryParamAuth::className()

В случае HttpBearerAuth::className() мы должны передать токен доступа в заголовке авторизации, например Authorization: Bearer <access token here>

В случае QueryParamAuth::className() мы должны передать маркер доступа в URL запроса в качестве параметра, например, api-url? Access-token =.

Вы можете добавить метод аутентификации на свой контроллер следующим образом

use yii\filters\auth\HttpBearerAuth;

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