2016-10-08 1 views
1

Mein Website-Projekt zeigt benutzerspezifische Daten auf fast jeder Seite (zB Benutzername in der Topbar anzeigen, die auf allen Seiten vorhanden ist), geliebte Elemente anzeigen, etc .. .Sicherer Weg, um zu wissen, ob der Benutzer mit Django auf der Client-Seite angemeldet ist

Ich benutze AJAX, um HTML-Fragmente zu erhalten, abhängig davon, ob der Benutzer authentifiziert ist oder nicht (zB Benutzernamen in der Topbar anzeigen, wenn authentifiziert, sonst Anmelde-/Anmelde-Buttons).

Meine Frage ist, das obige Verfahren macht mir AJAX-Anforderung in fast allen Seiten GET aufzurufen und anschließend mindestens verdoppelt sich die HTTP-Anforderungen & die Serverbelastung, ist es sicher einige Cookie logged_in: true hinzufügen und überprüfen Sie es so rufe ich die AJAX GET Anfrage nur wenn der Benutzer angemeldet ist.

Die Konvention in Django und moderne Webdev ist nur die Session-ID in den Cookies hinzufügen und alles ist auf der Serverseite, gibt es eine sichere Möglichkeit, um zu wissen, ob der Benutzer ist auf der Clientseite angemeldet?

Antwort

1

Verwenden Sie in Ihrer Vorlage is_authenticated, um die Ajax-Anforderungen bedingt zu machen.

{% if request.user.is_authenticated %} 

<!-- make the ajax requests --> 

{% endif %} 
+1

Danke, leider würde das in meinem Fall nicht gut funktionieren, weil ich den größten Teil der Seite zwischenspeichern würde. Ich benutze AJAX, um die langsamen Berechnungen in meinen Seiten zu überwinden. –

Verwandte Themen