2012-03-28 5 views
0

Ich habe eine expressjs App mit jederauthentischen Einrichtung.Erlaube nur bestimmten Benutzern sich mit equalaut anzumelden

Everyauth funktioniert gut. Nun möchte ich, dass jeder Benutzer Benutzern erlaubt, sich bei der App anzumelden, deren E-Mail-ID mit einem regulären Ausdruck übereinstimmt.

sagen, dass ich Menschen, deren anmelden möchten E-Mail beginnt mit dem Buchstaben „foo“ (annehmen, [email protected]) oder ist von einer bestimmten Domain wie adeptocorp.com (nehme [email protected])

Bitte geben Sie mir eine Lösung, um diese Situation zu lösen

+0

> mir bitte eine Lösung bieten, diese Situation zu lösen || || Sie sollten sich überlegen, uns zu sagen, was Sie versucht haben und warum/wie es fehlgeschlagen ist. Wenn du nur nach einer Lösung fragst, wirst du nirgendwohin kommen. – Randolpho

Antwort

0

Wenn Sie Passwort-Authentifizierung verwenden (die ich vermute Ursache sonst müssen Sie sich nicht um E-Mail-Adressen kümmern) dann können Sie die validateRegistration Funktion verwenden.

Für andere ein Stück connect Middleware wie schreiben:

function checkEmail(regex){ 
    return function (req, res, next) { 
     // get everyauth.user via the everyauth helper 
     if (!everyauth.user.email.test(regex)) { 
      res.writeHead(403); 
      res.end("e-mail address not allowed"); 
     } 
     else { next(); } 
    } 
}; 

Und es verwendet, direkt nach dem everyauth Gebrauch wie:

connect // or express 
... 
.use(checkEmail) 
+0

Ich verwende Google und Facebook-Authentifizierung – ArjunUrs

+0

bearbeiten mit einigen benutzerdefinierten Middleware hinzugefügt –