Ajax Login mit Session?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ajax Login mit Session?

    Hallo...
    vielleicht wird einer für Euch die Frage nicht nachvollziehen können.
    Seither habe ich immer mit PHP gearbeitet. Für meine Studienarbeit nun muss ich eine Anwendung auf AJAX Basis schreiben. Und ich hoffe, dass ich hier die Unterstützung finde, die mir weiterhelfen können wenn ich stocke.

    Für die Anwendung muss sich ein Benutzer mit seinem Benutzernamen und Passwort anmelden. Daten liegen in einer Datenbank. Nach der Anmeldung kommt er auf die nächste Seite, auf die man nur im angemeldeten Zustand zugreifen darf.

    Seither habe ich das mit PHP und dem Session-Handling gelöst. In Ajax ticken die Uhren ja bekanntlich anders. Im Netz habe ich nix gefunden in Sachen Sessions mit Ajax.

    Kann mir einer von Euch Tipps geben, wie ich am Besten vorgehen kann? Oder wäre es der Einfachheit halber besser, mein Login-Script in PHP schreiben und erst nach dem Login Ajax zu verwenden?
  • Hallo dOnUt,

    danke für das herzliche Willkommen und für die Info.... werde mich da mal schlau machen.

    Ich habe auch schon Deinen "Sicheren Ajax Login" unter die Lupe genommen.
    So ähnlich will ich es auch umsetzten, bloss, dass ich die User-Daten in einer Datenbank speicher.
    2 kleine Fragen dazu:
    - Würdest Du das Passwort als hash-Wert in der Datenbank speichern, so wie Du es in Deinem txt-File hast?
    - Sind diese Seed-Dateien notwenig?

    Und zu guter letzt habe ich mich gefragt:
    Nach erfolgtem Login möchte ich in den eingeloggten Bereich wechseln. Habe nun
    if(login) {
    document.location.href = "../eingeloggt/index.html";
    }
    verwendet. Sprich ich möchte von login.html auf index.html springen.
    Nun bin ich mir nicht sicher, ob das die beste Lösung ist, oder ob ich es über ein DIV und innerHTML realisieren soll?

    Was meint dazu der Fachmann ;)
  • hi,

    also der seed macht das ganze schon sicherer
    hast du den beitrag dazu verfolgt?
    http://www.easy-coding.de/extrem-sicherer-ajax-login-t1491.html
    ich würde auf sha-1 umsteigen
    und eine mysql datenbank ist natürlich auch schöner
    hätte das tutorial aber nur unnötig aufgebläht

    deine javascript weiterleitung ist auch vollkommen i.O.
  • Guten abend,
    ich habe noch ein paar Unklarheiten zu meinem Login:
    Nach dem der Login des Benutzers erfolgreich war, soll er automatisch auf die naechste Seite weitergeleitet werden.
    Was aber die Authentifizierung angeht muss ich dann weiterhin mit Session-Ids im Link arbeiten??

    So also: Ich lasse mir eine SID generieren ueber das PHP Skript wenn der Login erfolgreich war und haenge diese nachher hier dran:

    Quellcode

    1. if(login) {
    2. document.location.href = "../eingeloggt/index.html?sid="+sessionID;
    3. }


    Worin liegt der Unterschied zum Konventionellem... weil ich ja immer noch meine Ids mit uebergeben muss??

    Eigentlich wuerde ich aber am Liebsten im Adressfenster nur meine Anwendung sehen: www.meinedomain.de/meineanwendung (So wie bei GMAIL... da sieht man ja auch immer nur http://gmail.google.com auch im angemeldetem Zustand)
    Muesste ich dann alles in ein Main-Template packen?

    Danke fuer Eure Hilfe.
  • Beziehungsweise, jetzt habe ich mir das so vorgestellt:

    Wenn ich nach dem Einloggen das Login-Formularfeld ausblenen möchte setze ich diesen in ein div-Feld und überschreibe es nach erfolgtem Login über innerHTML. Oder verweise an ein weiteres div-Element.

    Quellcode

    1. var ob = document.getElementById('message');
    2. var login_form = document.getElementById('login_form');
    3. if(login) {
    4. ob.innerHTML = 'login = ok';
    5. login_form.innerHTML = 'So nun sind Sie eingeloggt!!!';
    6. }



    Wenn ich mir nun den Quelltext anzeigen lasse wird mir immer noch der Code mit dem Login-Formular des Anfangsstatus angezeigt, was ja eigentlich klar ist... dieser div-Felder werden ja nur dynamisch erzeugt.

    Meine Frage nun:
    Ist dieser Ansatz richtig, dies so umzusetzen?
    Und.... Wenn ich dann auf refresh gehe, zeigt er mir wieder die Login-Felder an! Wie kann ich das umgehen?
  • gmails frontend ist eine reine ajax/javascript anwendung
    es werden nur clientfunktionen aufgerufen - die seite wird nicht gewechselt - eben eine 100%ige asynchrone kommunikation
    setze ich auch manchmal ein.. ist doch ganz nett
    anstatt die seite mit <a href="url"> zu wechseln schreibst du dir einfach eine ajax funktion die url() in dein hauptdiv lädt

    @sessionID:
    ob sessionID in der URL oder ein cookie.. wie du willst

    der ajax seed login, wie in meinem beispiel ist eben für anwendungen wie bei gmail konzipiert
    wenn du ein login über mehrere seiten haben willst, musst du zusätzlich das [coderwiki]HowTos/PHP-Login-Registrierung-Tutorial[/coderwiki] Tutorial machen

    session abfragen: angemeldet? ja/nein -> zeige login ja/nein


    //Weiter gehts in diesem Thread:
    http://www.easy-coding.de/ajax-timeout-exceptions-t1772.html