Мне нужно проверить, что моя аутентификация работает правильно, поэтому я решил изменить текущий тест, который ищет 401, а не 302. Я написал следующее:
public function it_should_not_let_you_access_the_company_end_point_when_not_logged_in() {
$response = $this->get('api/v1/company/', [],[],[],['Content-Type' => 'application/json']);
dd($response->response);
$this->assertEquals('302', $response->getStatusCode());
}
Тип содержимого — json, поэтому тип ответа должен быть ajax, как всегда:
Illuminate\Http\RedirectResponse {#1066
#request: Illuminate\Http\Request {#963
#json: null
#userResolver: Closure {#945
class: "Illuminate\Auth\AuthServiceProvider"this: Illuminate\Auth\AuthServiceProvider {#68 …}
use: array:1 [
Это то, что я вижу в дампе объекта ответа.
Промежуточное программное обеспечение аутентификации настроено так:
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
return redirect()->guest('auth/login');
}
return $next($request);
}
Но $request->ajax()
возвращает ложь Мне нужно, чтобы это было правдой и вместо этого сделать 401.
Идеи?
Задача ещё не решена.
Других решений пока нет …