Flash-данные Laravel 5.2 не сохраняются

Должно ли перенаправление с данными флэш-памяти сохранять данные флэш-памяти, если задействовано промежуточное ПО аутентификации?

Обратите внимание на несколько вещей, которые помогут ответить на некоторые возможные вопросы:

    1. Я звоню в веб-связующее ПО.
    1. Я использую драйвер файловых сессий.
    1. Я могу получить значения, сохраненные в сеансе, за исключением данных, которые были перенесены.
    1. Я попытался обновить перепрограммированные данные, добавив следующую строку в промежуточное программное обеспечение Authenticate:
      $ Request-> сессия () -> перепрошить ();
      

Таким образом, Authenticate.php теперь выглядит следующим образом:

public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('login');
}
}

$request->session()->reflash();

return $next($request);
}

Эта проблема также влияет на шаблон auth, сгенерированный make: auth, в результате чего $ errors не отображается при ошибке.

ОБНОВЛЕНИЕ (3/29 @ 08:54 EST)

Как выяснилось ниже, я обнаружил, что, по моему мнению, является основной причиной. Каждый маршрут дважды вызывал «веб» промежуточное ПО. Таким образом, фактически выполнялись два запроса, которые удаляли флеш-сообщение (сообщения), прежде чем пользователь имел возможность их увидеть. Оригинальный маршрут: список ниже.

+--------+----------+-------------------------+------+-----------------------------------------------------------------+---------------+
| Domain | Method   | URI                     | Name | Action                                                          | Middleware    |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+---------------+
|        | GET|HEAD | /                       |      | Closure                                                         | web           |
|        | GET|HEAD | groups                  |      | App\Http\Controllers\GroupsController@index                     | web,web,auth  |
|        | GET|HEAD | groups/set-default/{id} |      | App\Http\Controllers\GroupsController@setDefaultGroup           | web,web,auth  |
|        | GET|HEAD | home                    |      | App\Http\Controllers\HomeController@index                       | web,web,auth  |
|        | GET|HEAD | login                   |      | App\Http\Controllers\Auth\AuthController@showLoginForm          | web,web,guest |
|        | POST     | login                   |      | App\Http\Controllers\Auth\AuthController@login                  | web,web,guest |
|        | GET|HEAD | logout                  |      | App\Http\Controllers\Auth\AuthController@logout                 | web,web       |
|        | POST     | password/email          |      | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,web,guest |
|        | POST     | password/reset          |      | App\Http\Controllers\Auth\PasswordController@reset              | web,web,guest |
|        | GET|HEAD | password/reset/{token?} |      | App\Http\Controllers\Auth\PasswordController@showResetForm      | web,web,guest |
|        | GET|HEAD | register                |      | App\Http\Controllers\Auth\AuthController@showRegistrationForm   | web,web,guest |
|        | POST     | register                |      | App\Http\Controllers\Auth\AuthController@register               | web,web,guest |
|        | GET|HEAD | visitees                |      | App\Http\Controllers\VisiteesController@index                   | web,web,auth  |
|        | GET|HEAD | visitees/check-in/{id}  |      | App\Http\Controllers\VisiteesController@checkIn                 | web,web,auth  |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+---------------+

Мои маршруты теперь выглядят следующим образом после удаления маршрутов из промежуточного программного обеспечения «web»:

+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
| Domain | Method   | URI                     | Name | Action                                                          | Middleware |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+
|        | GET|HEAD | /                       |      | Closure                                                         | web        |
|        | GET|HEAD | groups                  |      | App\Http\Controllers\GroupsController@index                     | web,auth   |
|        | GET|HEAD | groups/set-default/{id} |      | App\Http\Controllers\GroupsController@setDefaultGroup           | web,auth   |
|        | GET|HEAD | home                    |      | App\Http\Controllers\HomeController@index                       | web,auth   |
|        | GET|HEAD | login                   |      | App\Http\Controllers\Auth\AuthController@showLoginForm          | web,guest  |
|        | POST     | login                   |      | App\Http\Controllers\Auth\AuthController@login                  | web,guest  |
|        | GET|HEAD | logout                  |      | App\Http\Controllers\Auth\AuthController@logout                 | web        |
|        | POST     | password/email          |      | App\Http\Controllers\Auth\PasswordController@sendResetLinkEmail | web,guest  |
|        | POST     | password/reset          |      | App\Http\Controllers\Auth\PasswordController@reset              | web,guest  |
|        | GET|HEAD | password/reset/{token?} |      | App\Http\Controllers\Auth\PasswordController@showResetForm      | web,guest  |
|        | GET|HEAD | register                |      | App\Http\Controllers\Auth\AuthController@showRegistrationForm   | web,guest  |
|        | POST     | register                |      | App\Http\Controllers\Auth\AuthController@register               | web,guest  |
|        | GET|HEAD | visitees                |      | App\Http\Controllers\VisiteesController@index                   | web,auth   |
|        | GET|HEAD | visitees/check-in/{id}  |      | App\Http\Controllers\VisiteesController@checkIn                 | web,auth   |
+--------+----------+-------------------------+------+-----------------------------------------------------------------+------------+

При перемещении маршрутов из группы промежуточного программного обеспечения «Интернет», флэш-сообщение отображается правильно. Но теперь у меня есть новая проблема!

Флэш-сообщения не удаляются из сеанса после первоначального запроса. Они сохраняются при каждом последующем запросе, пока не будут сброшены или забыты вручную.

На данный момент я не уверен, стоит ли мне открывать второй вопрос, который конкретно касается сохранения данных флэш-памяти. Пожалуйста, сообщите, если так.

0

Решение

пожалуйста, запустите composer update обновить laravel / framework до v5.2.27, затем выпустить php artisan make:auth восстановить аутентичные маршруты

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]