Express-Weiterleitung nach dem login-Authentifizierung

Arbeite ich an einer app, die hat node.js und der express auf dem server, mongodb für die db und Backbone.js auf dem front-end. Ich arbeite zum aktivieren von Benutzer-logins, so dass ich verwendet habe, der passport.js Bibliothek. Ich habe ein problem mit meinem login 'post' - Methode: Es ist keine Umleitung zu einer anderen Seite (es ist ein SPA, so meine ich, rendering eine Backbone-view). Hier ist der code:

//standard express setup...

app.post('/api/auth', function(req, res, next) {
  passport.authenticate('local', function(err, user, info) {
    if (err) { return next(err) }
    if (!user) {
      req.session.messages =  [info.message];
      return res.redirect('/')
    }
    req.logIn(user, function(err) {
      if (err) { 
    return next(err); 
  } else {
            console.log('yup, working'); //Can see the response in the console
    return res.redirect('/api'); 
  }
});
  })(req, res, next);
});

app.get('/api', function (request, response) {
  response.send( 'Login successful!' );
});

Also kann ich die Konsole sehen.log-Meldung in Ordnung, und eine GET-Anforderung für die route ausgelöst WIRD...aber nichts passiert. Also ich denke, dass ich falsch verstanden habe, wie 'res.redirect " funktioniert - ich will navigieren, um die route auf der login-Erfolg. Ich habe darüber nachgedacht mit Fenster.Lage, aber ist das eine gute langfristige Lösung? Ich bin nicht mit einem beliebigen html-Vorlagen auf dem server, also kann ich nicht (ich glaube nicht) tun, etwas so einfaches wie 'res.render('index')'

Was wäre der beste Weg, dies zu nähern? Vielen Dank im Voraus.

  • Sie können dies lösen, mit der einfache Weg, der nur mit window.href oder nicht verwenden res.redirect und stattdessen einige json, die die client-Seite erwartet zu haben, um sich zu bewegen auf, mit dem zu tun, was ist tun soll. Wenn möglich halten Sie eine einzelne backbone-Modell Benutzer und überwachen Sie den status mit diesem Modell dann alle anderen Modelle hören auf die User-Modell und Maßnahmen ergreifen.
InformationsquelleAutor cs_stackX | 2014-03-01
Schreibe einen Kommentar