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: /') доказал, что мое предположение не было неверным, и я работал над неправильными строками.