2017-09-07 1 views
0

Ich versuche, AJAX-Anfrage zu behandeln, die aus Leerlauf/abgelaufene Sitzung initiiert wurden (vielleicht war die Seite offen und die Sitzung abgelaufen). Ich schrieb die unter Middleware, aber es funktioniert nicht wie erwartet:Middleware, um zu überprüfen, ob AJAX-Anfrage authentifiziert ist, funktioniert nicht

namespace App\Http\Middleware; 

use Closure; 

class AjaxSessionCheck 
{ 
/** 
* Handle an incoming request. 
* 
* @param \Illuminate\Http\Request $request 
* @param \Closure $next 
* @return mixed 
*/ 
    public function handle($request, Closure $next) 
    { 
     if(!\Auth::check()) 
     { 
      if($request->ajax()) 
      { 
       return response()->json(['Session_error'=>'Session Expired'], 401); 
       //throw new AuthenticationException('Unauthenticated'); 
      } 
     } 

     return $next($request); 
    } 
} 

Um zu überprüfen, ob dies arbeitete ich in der gleichen Seite protokolliert, der die Form von zwei separaten Registerkarten und dann von einem der Registerkarte abgemeldet, so dass die Sitzung auch auf der anderen Registerkarte ungültig. Dann initiierte ich eine Ajax-Anfrage (Benutzer klickt auf eine Löschen-Schaltfläche).

Jede Hilfe in die richtige Richtung wird sehr geschätzt!

+0

Können Sie Ihren Abmelde Endpunkt hinzufügen und können Sie bestätigen, dass wie erwartet funktionieren? –

+0

@AlexHarris: Hallo Haris, kannst du bitte ein wenig auf deinen Kommentar eingehen? Wie soll ich Ihrer Anweisung folgen? Ich bin neu in Laravel. –

+0

Können wir den Code sehen, der die Sitzung ungültig macht? –

Antwort

0

für eine bessere Abdeckung Verwendung if ($request->isJson() || $request->wantsJson()) {

+0

Versucht, aber kein Glück :( –

Verwandte Themen