2

したがって、次のように登録されている認証ミドルウェアがありますHttp/Kernel.php

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
];

次に、Authenticate クラスのミドルウェア ハンドル関数に変更を加えました。

public function handle($request, Closure $next)
{
    if ($this->auth->check()) {
        $user = $this->auth->user();

        $currentDateTime     = strtotime('Y-m-d H:i:s');
        $tokenExpirationTile = strtotime($user->token_expiration);

        if ($currentDateTime <= $tokenExpirationTile) {
            return $next($request);
        } else {
            $this->auth->logout();
            redirect('home/login')->with('message', 'Your session has expired. Please login in again');
        }
    } else {
        redirect('home/login')->with('message', 'Please login before attempting to access that');
    }
}

そして最後にルートを作成しました:

Route::get('home/dashboard', 'HomeController@dashboard', ['middleware' => 'auth']);

このルートにアクセスできますが、サインインしていないユーザーとしてリダイレクトする必要があります。

関数内でadd()を使用してhandleも何も起こりません。

このルートでこのメソッドを実行するにはどうすればよいですか?

また、各アクション要求の前に認証する必要がある他のコントローラーに関しては、「各アクションの前に、このメソッドを実行してください」と言いますか。レールで私がするだろうbefore_action :method_name

4

1 に答える 1

1

質問の 2 番目の部分については、コントローラーとルートの特定のアクションにミドルウェアを適用する方法についてドキュメントを参照してください。

http://laravel.com/docs/master/controllers#controller-middleware http://laravel.com/docs/master/routing#route-group-middleware

最初の部分については、ターミナルから「composer dump-autoload」を実行してみましたか?

于 2015-09-20T21:41:42.027 に答える