0
ルートを持つパッケージがいくつかあるプロジェクトがあります。私は公にアクセス可能でなければならないステージング/デモ環境を持っています。Laravel 5.5はステージングで認証が必要です
すべてのルートに対してauthミドルウェア(または同様のもの)を要求する方法はありますか?個別のルートとルートグループにすべて入れないでください。 (ブートストラップで何かを考える??)
ルートを持つパッケージがいくつかあるプロジェクトがあります。私は公にアクセス可能でなければならないステージング/デモ環境を持っています。Laravel 5.5はステージングで認証が必要です
すべてのルートに対してauthミドルウェア(または同様のもの)を要求する方法はありますか?個別のルートとルートグループにすべて入れないでください。 (ブートストラップで何かを考える??)
、あなたのアプリケーションへのすべてのHTTP要求時に実行するためのミドルウェアをしたい場合は、単にあなたのapp/Http/Kernel.php
クラスの$middleware
プロパティにミドルウェアクラスを一覧表示します。
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
YOUR MIDDLEWARE::class,
];
あなたがアクセス権を持っていない、あるいはしたくない場合は、パッケージ・コントローラを変更するために、あなたは(AuthenticateSession
継承をお勧めしますたとえばミドルウェアを作成することができます。
<?php
namespace App\Http\Middleware;
use Illuminate\Session\Middleware\AuthenticateSession;
use Auth;
use Closure;
class AuthenticateIfEnvironment extends AuthenticateSession
{
public function handle($request, Closure $next)
{
if (env('APP_ENV') == 'XXXXXXXX' && !Auth::user() && !$request->is('login')) {
return redirect('/login');
}
return parent::handle($request, $next);
}
}
はその後Kernal.php
がどのように見えますこの:
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\App\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\AuthenticateIfEnvironment::class,
];
が問題に遭遇したが認証ミドルウェアを追加しましただけでなく、それはルートだ、ので/ログインルートに到達することはできません答えは、書かれたとして、あなたの作る、言っていません。。。 (それは暗示されているが)。私たちが将来の読者のために明確であることを確かめたいだけです。 –
ログインとログアウトを処理するコントローラに次の行を追加することができます(AuthControllerの場合もあります):$ this-> middleware( 'auth'、['except' => ['getActivate'、 'anotherMethod']]); 'コンストラクタの内部。 –
うん。私はパッケージコントローラを使いこなすことを望んでいません。基本的に、これらのパッケージは「フルサービス」です。だから、主なアプリケーションバンドルの中でできることを(したい)しなければならないと思う。ピアレビューを待っている編集を参照してください。 –