yurygolikov
@yurygolikov

YII2 — HttpBearerAuth. Почему без указания свойства optional — выводит ошибку?

Делаю аутентификацию через HttpBearerAuth на YII2.

Если указываю БЕЗ 'optional' - выкидывает ошибку. Your request was made with invalid credentials.
public function behaviors()
    {
        return [
            'authenticator' => [
                'class' => HttpBearerAuth::className(),
            ],

Если указываю С 'optional' - то все ок.
public function behaviors()
    {
        return [
            'authenticator' => [
                'class' => HttpBearerAuth::className(),
                'optional' => ['*'],
            ],


Вопрос:
Почему не работает значение по дефолту - брать все actions?
На сколько я понял в доке написано, что, если это свойство не установлено,
то фильтр применяется ко всем действиям. Или я что то неверно понял?
/**
     * @var array list of action IDs that this filter will be applied to, but auth failure will not lead to error.
     * It may be used for actions, that are allowed for public, but return some additional data for authenticated users.
     * Defaults to empty, meaning authentication is not optional for any action.
     * Since version 2.0.10 action IDs can be specified as wildcards, e.g. `site/*`.
     * @see isOptional()
     * @since 2.0.7
     */
    public $optional = [];
  • Вопрос задан
  • 1632 просмотра
Решения вопроса 1
padlyuck
@padlyuck
потому что значение по дефолту - пустой массив, а не все экшены. в приведенном вами куске написано что по умолчанию список пустой, что означает что авторизация НЕ опциональна для любого экшена(если дословно). Если русским языком то обязательна для всех
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы