2017-05-13 7 views
1

Ich bin neu zu Knoten js & Javascript im Allgemeinen. Ich habe den folgenden Code, der eine Anmeldung behandelt. Ich habe eine MySQL-Datenbank mit einer Kundentabelle. Wenn der Kunde seinen Benutzernamen und sein Passwort eingibt, prüft er, ob er in der Datenbank vorhanden ist. Dieser Teil funktioniert.Erstellen einer Benutzersitzung - NODE js

Ich möchte jetzt diese Funktion zu verbessern, so dass es den Benutzernamen und eine Art einer Sitzungsvariable erstellen wird, die in der gesamten Anwendung verwendet werden kann. Ich bin neu in JS, daher bin ich mir noch nicht sicher, welche eingebauten Einrichtungen bereits existieren, oder Best Practice rund um Sitzungen.

Ich möchte in der Lage sein, diese Session-Variable über die Anwendung und für die anschließende Abmeldung zu verwenden.

Kann mir jemand dazu raten oder in die richtige Richtung zeigen? Vielen Dank.

Fall "/ login":

var body = ''; 

console.log("user Login "); 

request.on('data', function (data) { 
    body += data; 
}); 

request.on('end', function() { 
    var obj = JSON.parse(body); 
    console.log(JSON.stringify(obj, null, 2)); 
    var query = "SELECT * FROM Customer where name='"+obj.name+"'"; 
    response.writeHead(200, { 
     'Access-Control-Allow-Origin': '*' 
    }); 

    db.query(
     query, 
     [], 
     function(err, rows) { 
      if (err) { 
       response.end('{"error": "1"}'); 
       throw err; 
      } 
      if (rows!=null && rows.length>0) { 
       console.log(" user in database"); 
       theuserid = rows[0].customerID; 
       var obj = { 
        id: theuserid 
       } 
       response.end(JSON.stringify(obj)); 

      } 
      else{ 
       response.end('{"error": "1"}'); 
       console.log(" user not in database"); 
      } 

     } 
    ); 
}); 

}

Antwort

1

Es können mehrere Möglichkeiten, sein, eine Benutzersitzung zu implementieren.

One, könnten Sie einen Browser-Cookie verwenden, kommt es mit vielen Vor- und Nachteilen und Sie sollten darüber etwas lesen, um zu sehen, wie es verwaltet. Dies hängt auch vom Server ab, den Sie verwenden (Express, Hapi usw.).

Zweitens können Sie ein JWT-Token im Back-End festlegen und es in den Header der Antwort aufnehmen. Dann können Sie entweder den Anwendungsstatus oder den lokalen Speicher des Browsers verwenden, um dieses Token auf der Benutzeroberfläche zu speichern. Alle solchen Folgeanforderungen, die eine Authentifizierung erfordern, sollten dieses Authentifizierungs-Token als Kopfzeile für die Verifizierung enthalten.

Für mehr Klarheit können Sie in verwandten Bibliotheken (wie z. B. Reisepass) suchen, die diese Aufgabe viel einfacher machen.

PS: Wenn Sie Cookies auswählen, stellen Sie bitte sicher, dass das Geschäft es erlaubt oder nicht, da die Endnutzer nicht immer verfolgt werden möchten. :)