2016-08-18 2 views
1

Ich habe die pass.js beim Anmelden implementiert habe ich meine pass.authenticated() -Funktion in Middleware.isAuthenticated Rückgabe-Funktion false

app.post('/api/v1/login', 
     function (req, res, next) { 
      passport.authenticate('local-login', function (err, user, info) { 
       if (user == false) { 
        return res.json(ApiException.newNotAllowedError(api_errors.invalid_auth_credentials.error_code, null).addDetails(api_errors.invalid_auth_credentials.description)); 
       } 
       else { 
        next(); 
       } 
      })(req, res, next); 
     }, controllerIndex.auth.login); 

und Login ist erfolgreich.

Wenn ich andere Anfrage mit der Funktion isAuthenticate() authentifizieren, gibt es false zurück.

Wenn ich die Middleware-Funktion von pass.authenticated entferne, wird eine andere Anfrage wahr zurückgegeben. aber ich brauche Middleware-Funktion, um benutzerdefinierte Antwort zurückzugeben, während Benutzer nicht authentifiziert wird. Bitte hilf mir, was ich falsch umgesetzt habe.

Antwort

1

Sie Cookie zu setzen haben oder sicher Benutzer machen ist Login mit req.login

app.post('/api/v1/login', 
    function (req, res, next) { 
    passport.authenticate('local-login', function (err, user, info) { 
    if (user == false) { 
     return res.json(ApiException.newNotAllowedError(api_errors.invalid_auth_credentials.error_code, null).addDetails(api_errors.invalid_auth_credentials.description)); 
    }else{ 

    req.logIn(user, function(err) { 
     if (err) { return next(err); } 
     next(); 
    }); 

    } 
})(req, res, next); 
}, controllerIndex.auth.login); 
Verwandte Themen