CheckSessionLimit.php 630 B

12345678910111213141516171819202122232425
  1. <?php
  2. namespace App\Http\Middleware;
  3. use App\Models\User;
  4. use Closure;
  5. use Illuminate\Http\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. class CheckSessionLimit
  8. {
  9. public function handle($request, Closure $next)
  10. {
  11. if (User::check()) {
  12. $sessions = User::user()->tokens()->where('revoked', false)->count();
  13. if ($sessions > 1) {
  14. // Cierra sesión en las sesiones adicionales
  15. User::user()->tokens()->where('revoked', false)->skip(1)->take($sessions - 1)->update(['revoked' => true]);
  16. }
  17. }
  18. return $next($request);
  19. }
  20. }