@polynuc

YII2 REST — как разрешить всем (@, ?) доступ к экшену, в котором требуется аутентификация?

В контроллере такие настройки поведения
public function behaviors()
    {
        $behaviors = parent::behaviors();
        $behaviors['authenticator'] = [
            'class' => HttpBearerAuth::className(),
        ];
        return $behaviors;
    }

теперь каждый метод закрыт для гостей.
Как каждый метод сделать доступным и для гостей и для юзеров? Мне надо получить identity юзера в методе.

Попытки сделать это
$behaviors['access'] = [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'allow' => true,
                    //'roles' => ['?'],
                ]
            ],
        ];

не дают нужного эффекта, метод всегда закрыт либо для гостей, либо для юзеров
  • Вопрос задан
  • 445 просмотров
Пригласить эксперта
Ответы на вопрос 2
@polynuc Автор вопроса
5a08234039bb6957670818.png
Ответ написан
Комментировать
@iSensetivity
бухгалтер, програміст-самоук
/**
     * @inheritdoc
     */
    public function behaviors()
    {
        return [
            'access' => [
                'only' => [],
                'rules' => [
                    [
                        'actions' => [],
                        'allow' => true,
                        'roles' => ['@', '?'],
                    ],
                ],
            ],
        ];
    }


Но тут также нужно прописати правила для аутентификатора. Или вообше убрать его.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы