したがって、次のように登録されている認証ミドルウェアがあります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