2016-07-27 19 views
0

Ich bin neu in der Authentifizierung mit Websites, und ich habe viel über die verschiedenen Arten der Benutzerauthentifizierung (zum Beispiel Sitzung vs Token-Authentifizierung) gelesen, die Sie verwenden können. Vieles scheint jedoch mehr als das, was ich brauche, und ich bin mir nicht sicher, welche für meine Zwecke geeignet sind.Wie wird eine temporäre Authentifizierung für eine Website erstellt?

Meine Idee ist es, temporäre Benutzerkonten und Kennwörter zu generieren, die nach der ersten Verwendung ablaufen. Ich möchte, dass dies in meine Website integriert wird, sodass sie nur eine Möglichkeit haben, eingeschränkte Seiten anzuzeigen. Danach haben sie keinen Zugriff mehr auf diese Teile (es sei denn, sie verfügen über neue Anmeldeinformationen).

Jede Richtung im richtigen Schritt wird geschätzt.

Update: Ich bin mit Javascript (Node) als meine serverseitige Sprache

+0

Welche Sprache Server-Seite verwenden Sie? – Nitin

+0

@Nitin Ich benutze JavaScript (Node) – Jain

Antwort

1

Session-basierte Authentifizierung eigentlich unglaublich leicht ist, wenn Sie einen Knoten Backend verwenden, da es den meisten (wenn nicht alle) Webserver Bibliotheken Unterstützung von "Middleware", die Anfragen ändern, bevor sie Ihre Routenfunktionen treffen. Die Express-kompatible Middleware client-sessions ist dafür fantastisch, und ich habe sie vorher in einem Projekt mit großem Erfolg eingesetzt. Bei der ersten Anfrage eines Nutzers an Ihre Website, die diese identifiziert, wird ein Cookie hinzugefügt. Wenn Sie sich zu einem bestimmten Zeitpunkt anmelden, können Sie diese Sitzung als authentifiziert kennzeichnen und Sitzungsinformationen und andere spezifische Daten speichern.

Angenommen, Sie wollen beide Login & Logout, die einfachste Art und Weise zu verwenden POSTs über HTTPS login & logout Routen sein würde. Innerhalb der Auflösung für die Login-Route würden Sie einfach "zum Löschen markieren" in welcher Datenbank Sie arbeiten.

könnte ein Beispiel wie folgt aussehen:

var app = express(); 

function authenticate(user, pw){ 
    //do your application specific login verification here 
} 

function deleteAccount(user){ 
    //do your application specific user removal here 
} 

app.use(require("express-session")({ 
    secret : "YOUR-SECRET-KEY-HERE" 
    cookieName : "Session" 
    //any other desired config options go here 
}) 

app.post("/login", function(req, res){ 
    var user = req.body.user; 
    var pw = req.body.pw; 
    req.Session.isAuthenticated = authenticate(user, pw) 
    if(req.Session.isAuthenticated){ 
     markForDeletion(user, pw); 
    } 
    res.write("logged in as: " + user); 
    res.end(); 
}); 
app.post("/logout", function(req, res){ 
    deleteAccount(req.Session.username); 
    req.Session.username = ""; 
    req.Session.isAuthenticated = false; 
    res.write("logged out!"); 
    res.end(); 
}); 
+0

Vielen Dank! Das ist ein toller Start! – Jain