Ich habe eine node.js Anwendung auf Port 5000 ausgeführt, wo ich Passport.js als Autorisierung verwenden. Ich ermächtige Benutzer aus einer Post-Anforderung, wo ich einen benutzerdefinierten Rückruf verwenden:Lokale Pass Autorisierung auf verschiedenen Ports
this.router.post('/member/login', (req, res, next) => {
passport.authenticate('local', (err, member, info) => {
if (err) res.json(400).json({message: "An error ocurred"});
if (!member) {
console.log("No member found!");
return res.status(409).json({message: "No member found!"})
}
req.logIn(member, (err) => {
if (err) {
console.log(err);
return res.status(400).json({message: "An error ocurred"});
}
return res.json(member);
});
})(req, res, next);
});
Dies funktioniert gut, aber wenn ich lokale Entwicklung Ich habe ein Frontend Angular2-Anwendung, die auf einem anderen Port läuft (4200), so in Meine Entwicklung Ich bin nicht möglich, den autorisierten Benutzer zu bekommen: req.user ist undefined. Ich verwende Express-Session, um den autorisierten Benutzer zu speichern.
Wenn ich deploy ich bündle beide Anwendungen zusammen, so funktioniert alles.
Hat jemand eine gute und einfache Lösung für dieses Problem? Wieder ist es nur in der Entwicklung, ich habe dieses Problem.
Warum laufen diese Dinge nicht * in Ihrer Entwicklungsumgebung zusammen? – m02ph3u5
Ich benutze Angular 2 CLI, und weiß nicht, ob es möglich ist, meinen eigenen Knoten als Server zu verwenden, und wie es eingerichtet wird. – DNRN