Wie kann ich überprüfen, ob der Benutzer anonym oder von javascript eingeloggt ist?

8

Ich möchte herausfinden, ob der Benutzer eingeloggt ist oder ob er nur anonym von javascript ist ...

Ich habe diese Frage gefunden, aber es ist PHP-Code und ich war nicht ' t Sicher, ob es eine Sitzungsvariable namens logged_in gibt, die bei der Anmeldung gespeichert wird oder ob das nur etwas war, das diese Person selbst implementiert hat.

Weiß jemand, wie ich überprüfen kann, ob der Benutzer von Javascript eingeloggt ist, möglicherweise mit Ajax?

Bearbeiten: Ich führe Asp.Net MVC aus, sollte eigentlich

angegeben haben

Dies ist, damit ich eine clientseitige Ajax-Anmeldung implementieren kann. Wenn die Seite geladen wird, muss ich wissen, ob der Benutzer angemeldet ist oder nicht, also kann ich etwas Ähnliches wie <asp:LoggedInView> control mit jquery implementieren.

Danke, Danke Matt

    
Matt 31.07.2009, 14:34
quelle

7 Antworten

10

Sie können sitzungsgespeicherte Daten nicht aus JavaScript lesen.

Eine einfache Möglichkeit ist es, eine JS var von PHP zu erstellen (einfacher als Cookies), wie folgt:

%Vor%

Dann prüft der JS einfach das native logged_in var, um zu sehen, ob der Benutzer angemeldet ist.

%Vor%     
Makram Saleh 31.07.2009, 14:44
quelle
6

[DISCLAIMER] Da ich so viele Kommentare von Leuten bekommen habe, dass dies eine "schlechte Praxis" ist, werde ich das einfach sagen: Es ist eine schlechte Übung, es so zu machen, aber wir wissen es nicht was das ursprüngliche Plakat vorhat. Nach allem, was wir wissen, hat er alles andere 100% richtig und sicher gemacht und fragte nur, ob es einen Weg gab, um von Javascript zu lernen. Was ich unten getan habe, ist meine beste Idee, um zu erreichen, was er verlangt hat. [/ DISCLAIMER]

Sie können Ihren PHP oder die von Ihnen verwendete Backend-Sprache einen Cookie setzen, den Sie dann mit Javascript lesen können.

%Vor%

einfach so. Sie müssen die Cookie-Zeichenfolge nach dem Namen Ihres eingeloggten Cookies durchsuchen.

Sie können das auch verwenden, um ein Cookie zu setzen und Ihre Anmeldung über JavaScript durchzuführen (obwohl dies wahrscheinlich nicht die beste Idee ist).

Siehe hier , um einen schnellen Überblick über den Zugriff auf JavaScript-Cookies zu erhalten.

[Bearbeiten]

Um das Problem eines Client-Skripts zu behandeln, das Zugriff auf Sitzungsinformationen hat, und die mögliche Verwendung von Ajax, die in der ursprünglichen Frage vorgeschlagen wurde:

Ja, ein Ajax-Anruf wäre eine sehr einfache Möglichkeit, dies zu überprüfen. Ich bin eher ein jQuery-Typ, also liegt meine Ajax-Erfahrung dort, aber im Grunde würden Sie einen Ajax-Aufruf an Ihre Backend-Funktion machen, und diese Backend-Funktion prüft nur die 'eingeloggte' Session-Variable und gibt eine wahr oder falsch zurück.

Da Sie jetzt erwähnt haben, dass Sie jQuery verwenden, finden Sie diese Seite , um jQuery-Zugriff auf Cookies zu erleichtern. [/ edit]

    
idrumgood 31.07.2009 14:38
quelle
2

Dies ist eine Lösung, die normalerweise mit serverseitigen Sprachen implementiert wird. Mit JS bist du zumindest könnte in seinem Client einen Cookie setzen, in dem diese Informationen gespeichert werden.

Aber mit Ajax sollten Sie eine Seite haben (z. B. check_login.jsp / .apsx usw.), wo Sie nachsehen können wenn der Benutzer angemeldet ist (Zugriff auf eine DB, eine Session-Variable usw.) und wenn ja, dann bringe diese Information zurück zu JS (via JSON) und zünde beispielsweise ein DIV mit einer grünen Farbe an ...

Also:

check_login.aspx - & gt; gib die Information über Response.Write("{user_logged:true}");

zurück

Von login.aspx in Ihrem HTML-Code mit JS haben Sie einen AJAX-Aufruf, bei dem Ihre xmlhttp bereits eine Instanz von XMLHttpRequest object ...

ist %Vor%     
xdevel2000 31.07.2009 14:53
quelle
1

Es hat keinen Sinn. Wenn ein Benutzer angemeldet ist, kennen Sie ihn serverseitig. Sie müssen also nicht prüfen, ob Sie auf der Client-Seite eingeloggt sind.

- BEARBEITEN:

Nach Ihrer Klarstellung kann ich nur vorschlagen, auf dem Controller zu verifizieren, ob der Benutzer angemeldet ist. Wenn dies der Fall ist, werden Sie die normale Ansicht anzeigen, andernfalls werden Sie eine andere Ansicht anzeigen.

- BEARBEITEN hinzugefügt Aphorismus:

Manche Leute denken, wenn sie mit einem Problem konfrontiert werden: "Ich weiß, ich werde Ajax benutzen." Jetzt haben sie mindestens zwei Probleme

    
kentaromiura 31.07.2009 14:46
quelle
1

Der beste Weg ist meiner Meinung nach, es über Ajax zu machen.

Das wird es tun.

JS-Datei ...

%Vor%

check.php

%Vor%     
Eddsters 11.04.2016 22:01
quelle
0

Sie können document.cookie parsen.

    
Alsciende 31.07.2009 14:38
quelle
0

Sie können mit folgendem Code überprüfen:

%Vor%     
Aaron 13.10.2016 05:51
quelle