2017-06-20 6 views
1

Ich bin derzeit mit Laravel 5.4, erhalte ich die Liste der Online-Benutzer, und ich will von meinem Admin-Dashboard einen bestimmten Benutzer aus meiner Liste machen zu trennen, gibt es eine Möglichkeit, dies zu tun?einen bestimmten Benutzer

+1

Und hier dachte ich, HTTP war ein Stateless-Protokoll und Benutzer kamen auf, griffen, was sie benötigten und getrennt bis zur nächsten Anfrage. – apokryfos

+0

Ich habe nicht verstanden, wovon redest du? Aber kannst du mich bitte durch eine Lösung oder etwas führen? –

+0

Ich sage nur, dass ohne weitere Details zu Ihrem spezifischen System, die allgemeine Antwort ist, dass es nicht möglich ist. – apokryfos

Antwort

3

Setzen Sie ein Flag in der Datenbank, um den Benutzer zum Beispiel als abmeldend zu kennzeichnen. Dann auf ihrer nächsten Anforderung, in eine Middleware sagen, können Sie tun:

if (Auth::user()->should_logout) { 
    Auth::logout(); 
} 
+0

Vielen Dank es ist eine nette Idee, wirklich, aber gibt es eine Möglichkeit, es sofort zu tun? Wie eine Echtzeit-Aktion? –

+0

Tun Sie dies mit einem Ajax-Aufruf und Sie haben Ihre "Echtzeit" -Aktion – Christophvh

+1

Nicht, es sei denn, Sie haben etwas Setup wie ein Websocket oder die Abfrage des Kunden über Ajax kontinuierlich. Wenn Sie dies tun, können Sie eine 'window.reload()' Client-Seite tun. – btl

1

es eine Abhilfe ist, dies zu tun, aber ich denke, es ist nicht optimal!

In users Tabelle wir ein Feld haben sollten, sagen conected, rufen Sie dann eine Ajax-Anfrage alle 10 Sekunden (Beispiel), die Ajax-Anforderung wird für connected Feld Überprüfung und Benutzer-ID zu senden, dass die Benutzer immer noch unter Angabe ist online, jetzt, wenn Sie ändern dieses Feld manuell, wenn ein Benutzer auf einen Link klickt oder die Seite aktualisiert, werden sie ausgeloggt.

Update: @ Idee BTL window.reload() zu verwenden ist gut und nicht erfrischend brauchen!

+0

ist es nicht ein wenig unordentlich? alle 10 Sekunden oder so etwas anrufen? –

+1

Wenn Sie in Echtzeit wollen und keine WebSockets verwenden möchten, müssen Sie eine Funktion vorsichtshalber aufrufen! –

Verwandte Themen