Tự động logout khi user không hoat động laravel 5

Nếu bạn có nhu cầu logout user trong 1 khoảng thời gian user không hoạt động thì cách làm như sau:
Bước 1 : Tạo middleware AutoLogout

D:\xampp\htdocs\realtime>php artisan make:middleware AutoLogout

Sửa code lại như sau :

<?php
 
namespace App\Http\Middleware;
 
use Closure;
use Illuminate\Support\Facades\Auth;
use Session;
 
class AutoLogout
{
    protected $timeout = 900; //15 minutes
    public function __construct()
    {
    }
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!Session::has('lastActivityTime')) {
            Session::put('lastActivityTime', time());
        } elseif (time() - Session::get('lastActivityTime') > $this->getTimeOut()) {
            Session::forget('lastActivityTime');
            Auth::logout();
            return redirect('/')->withErrors(['You had not activity in 15 minutes']);
        }
        Session::put('lastActivityTime', time());//f5 browser
        return $next($request);
    }
 
    protected function getTimeOut()
    {
        return (env('TIMEOUT')) ?: $this->timeout;
    }
 
  
}

Chú ý : Mặc định user sẽ out trong vòng 15 phút theo công thức 15*60
Bước 2 : Thêm Middleware vào AutoLogout Kernel.php
Open D:\xampp\htdocs\realtime\app\Http\Kernel.php tìm đến mục web middlewareGroups và thêm vào \App\Http\Middleware\AutoLogout::class

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
            \App\Http\Middleware\AutoLogout::class,
        ],
 
        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];

Bước 3: Thêm Middleware vào route như sau :

Route::get('test', 'TestController@getPusher')->middleware('web');