当我在 Laravel 5 中保护路由时,它在我未登录时运行良好,因为它会将 protected 路由重定向到登录页面,但一旦我登录并尝试访问 protected 路由,它就会将我重定向到根路由。 例如,如果我尝试访问/people 或/people/1,它会将我重定向到/
这是我的 routes.php 文件:
Route::get('/', function () {
return view('welcome');
});
Route::group(['middleware' => ['auth']], function () {
Route::resource('people', 'PeopleController');
Route::resource('people.checkins', 'CheckinsController');
Route::model('checkins', 'Checkin');
Route::model('people', 'Person');
Route::bind('checkins', function($value, $route) {
return App\Checkin::whereId($value)->first();
});
Route::bind('people', function($value, $route) {
return App\Person::whereId($value)->first();
});
});
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
});
最佳答案
如果您要使用 Auth,您也应该将“web”组应用于这些路由。
您可以将使用“auth”中间件的路由组调整为:
Route::group(['middleware' => ['web', 'auth']], function () {
// ...
});
更新 对于 Laravel 5.2.27。如果你安装了 laravel/laravel >= 5.2.27 的新副本,你的路由将被包装在一个默认应用 'web' 中间件的组中。这仅适用于全新安装,因为此更改是对 App\Providers\RouteServiceProvider 的更改,升级到 laravel/framework 不会触及。
关于php - Laravel 5 身份验证中间件总是重定向到 root 或登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34553345/