Middleware Session Timeout Laravel
Menentukan berapa lama session user berada didalam aplikasi adalah hal yang penting. Pengaturan session timeout di PHP dapat dilakukan file php.ini tapi rasanya kurang "elegan" untuk melakukan konfigurasinya disana, apalagi itu akan berlaku global.
Di laravel dapat dilakukan pada middleware, middleware tersebut yang kita pasang di routing maka akan memeriksa session berjalan. Kurang lebih inilah script session timeout laravel pada middleware :
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Session\Store;
class SessionTimeout {
protected $session;
protected $timeout=1200;
public function __construct(Store $session){
$this->session=$session;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if(!$this->session->has('lastActivityTime'))
$this->session->put('lastActivityTime',time());
elseif(time() - $this->session->get('lastActivityTime') > $this->timeout){
$this->session->forget('lastActivityTime');
Auth::logout();
return redirect('login')->with(['warning' => 'You had not activity in '.$this->timeout/60 .' minutes ago.']);
}
$this->session->put('lastActivityTime',time());
return $next($request);
}
}Jangan lupa untuk me-register middleware tersebut pada kernel.php
Bacaan terkait
Cara Install Composer di Windows Dengan Mudah
Composer adalah dependency manager yang sangat populer untuk pengembangan aplikasi berbasis PHP. Di artikel ini, Anda akan belajar cara menginstal Composer di Window...
Panduan Instalasi PHP, MySQL, dan Apache di macOS
Instalasi PHP, MySQL, dan Apache (sering disebut sebagai stack LAMP - Linux, Apache, MySQL, PHP) pada macOS sangat penting bagi pengembang web yang ingin menjalankan...
Menerapkan IP Blocker di Laravel
Untuk meningkatkan security di website, salah satunya dengan menerapkan IP blocker atau mem-blokir IP address yang mengakses website. Di laravel salah satunya dengan...
Komentar (0)
Belum ada komentar. Jadilah yang pertama.
Tulis komentar
Komentar akan dimoderasi sebelum tampil.