3

Sentinel - https://github.com/rydurham/Sentinel - を使用してアプリのユーザー認証を処理し、routes.php の「admin」サブドメイン全体を次のようにまとめています。

Route::group([ "domain" => 'app.domain.dev', 'before' => 'Sentinel\auth' ], function()
{
    Route::group(array('prefix' => 'one'), function()
    {
        ...
    });

    Route::group(array('prefix' => 'two'), function()
    {
        ...
    });

    Route::get('/', array('as' => 'home', 'uses' => 'DashboardController@index'));
});

ローカル マシンでは、すべて正常に動作します。app.domain.dev は、ログインしている場合は管理ダッシュボードを表示し、ログインしていない場合はログイン ページを表示し、ログアウトするとユーザーはログイン ページに戻ります。

ただし、Forge を介してデプロイすると、ログインしていない場合、app.domain.dev は無限ループ エラーを引き起こします。それでも、/login は引き続きアクセス可能で機能しており、ログインすると、ダッシュボードが正常にロードされます。ユーザーがログアウトすると、再び無限ループ エラーが発生します。

なぜこれがローカルで動作し、展開されていないのかはわかりませんが、'Sentinel\auth' フィルタリングされたグループ内にある 'home' ルートに何か関係があるのではないでしょうか?

Sentinel の認証フィルター:

Route::filter('Sentinel\auth', function()
{
    if (!Sentry::check()) return Redirect::guest(Config::get('Sentinel::config.routes.login'));
});

...そして config.routes.login は「login」に設定されています。

私はこの質問の類似点を理解しています-laravelのリダイレクトループ-しかし、私を混乱させるのは、ローカルで動作している/展開が壊れていることです。

4

1 に答える 1