Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 11.07.2015 22:46:23

lapaliv

Порядок прохождения HTTP-запроса (или упорядочивание Middleware)

Всем привет. Сегодня заметил такую штуку в laravel:
Есть маршрут:


Route::group(['middleware' => 'auth', 'prefix' => '/users'], function () {
        Route::get('/add', 'UserController@create');
        Route::post('/add', 'UserController@store');
})

Используя Unit-тесты, отправил запрос сначала на post с данными:
$this->call('POST', '/users/add', ['name' => 'testName']);
и ожидая при этом ошибку 401... Но к моему удивлению, ошибка оказалась 302
Expected status code 401 got 302.
Failed asserting that 302 matches expected 401.

Исходя из логики, которую я предполагал увидеть, пользователя должно выбросить на страницу авторизации, а не говорить ему о том, что "страница временно перемещена". Как быть? подскажите! С запросами типа GET аналогичная проблема.
Еще попробовал сделать тоже самое со самой HTML страницы. Зашел на нее, ввел данные в форму, куки почистил и нажал кнопку отправить. Выдал ошибку 500. Ругается на токен... Видимо Аутентификация проходит в последнюю очередь... Как можно ее "поставить" вперед?

Заранее благодарен

#2 12.07.2015 10:43:12

Re: Порядок прохождения HTTP-запроса (или упорядочивание Middleware)

Как сделали, так и работает. Не хотите 3хх редирект, тогда отдавайте вьюху с нужным статусом 4хх.

Не в сети

#3 12.07.2015 17:15:03

Re: Порядок прохождения HTTP-запроса (или упорядочивание Middleware)

Если Laravel в версии 5.1, то  middleware можно отключить для тестирования.

http://laravel.com/docs/5.1/testing#dis … middleware

А регистрация находится тут:   app/Http/Kernel.php

http://laravel.com/docs/5.1/middleware# … middleware

Не в сети

Подвал раздела