Laravel 5.1 Auth не работает на сервере, в то время как в локальной среде он делает правильную работу

Аутентификация Laravel 5.1.35 не работает после развертывания на сервере. В то время как в местной среде его работает нормально.

По умолчанию успешный вход в систему перенаправляет на '/home', а обработчик маршрута / home / Auth::check() возвращает false.

Route::get( '/home', function () {
  var_dump(Auth::user()); 
} );

Над кодом печатает bool(false);

код маршрутов:

Route::get('/logout', 'Auth\AuthController@getLogout');
Route::get('/login', 'Auth\AuthController@getLogin');
Route::get( '/home', function () {
  var_dump(Auth::user());
} );

Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('/login/{param}', 'Auth\AuthController@getLogin');
Route::get('/register', 'Auth\AuthController@getRegister');
Route::get('/signup', 'Auth\AuthController@getLogin');
Route::post('/auth/stepOne', 'Auth\AuthController@stepOne');
Route::post('/auth/stepTwo', 'Auth\AuthController@stepTwo');
Route::post('/auth/stepTwoBrand', 'Auth\AuthController@stepTwoBrand');
Route::post('/auth/register', 'Auth\AuthController@postRegister');

1 ответ

Фактической проблемой была пустая строка перед тегом php.

Я использовал следующую функцию php для перенаправления вместо того, чтобы возвращать файл представления из контроллера или вместо использования lara vel riderect.

header('Location: /');

Он напечатал фактический файл, который имел пустую строку Удаление этой строки исправило мою проблему.

В моей кодовой базе были тысячи файлов. Я предположил, что я пробовал разные сценарии, чтобы найти такие пустые строки в начале любого файла, и не было такого файла в соответствии с результатами этих сценариев. Я предположил, что ни в одном из моих файлов нет пустой строки. Но заголовок ('Location: /') доказал, что мое предположение не было неверным, и я работал над неправильными строками.

Другие вопросы по тегам