-1

サーバーにデプロイした後、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');
4

1 に答える 1

0

実際の問題は、php 開始タグの前の空白行でした。

コントローラーからビューファイルを返す代わりに、またはlaravel riderectを使用する代わりに、次のコアphp関数を使用してリダイレクトしました。

header('Location: /');

空行のある実際のファイルを印刷しました。この行を削除すると、問題が解決しました。

私のコードベースには何千ものファイルがありました。私の仮定は、ファイルの先頭にあるそのような空白行を見つけるためにさまざまなスクリプトを試してみたところ、それらのスクリプトの結果にあるようなファイルはなかったということでした。どのファイルにも空白行がないと仮定しました。しかし、 header('Location: /') は、私の仮定が間違っていないことを証明し、間違った行で作業していました。

于 2016-06-21T11:23:54.217 に答える