Пишу rest api через модуль, с отдельной от основного приложения авторизацией.
В bootstrap модуля для этого прописано:
Код: Выделить всё
public function bootstrap($app): void
{
if ($app instanceof \yii\web\Application) {
$pathInfo = $app->request->pathInfo;
if (strpos($pathInfo, 'api') !== 0) {
return;
}
$app->setComponents([
'user' => [
'class' => User::class,
'identityClass' => ApiUser::class,
'enableAutoLogin' => false,
'enableSession' => false
]
]);
}
}
public function behaviors(): array
{
return [
'authenticator' => [
'class' => HttpBasicAuth::class,
],
];
}
Хотя необходимые заголовки для указания нужного формата передаются:
Если кинуть исключение в контроллере модуля, то ошибка приходит корректно в формате json или xml, если задать соответствующее значение у заголовка.