Ho un'applicazione node.js in esecuzione sulla porta 5000, dove uso passport.js come autorizzazione. Autorizzo gli utenti da una richiesta POST, dove io uso un callback personalizzato:Autorizzazione locale del passaporto su porte diverse
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);
});
Questo funziona bene, ma quando sviluppo locale ho un frontend applicazione Angular2, che viene eseguito su una porta diversa (4200), quindi in il mio sviluppo non sono possibile ottenere l'utente autorizzato: req.user non è definito. Io uso express-session per memorizzare l'utente autorizzato.
Quando distribuisco raggruppo entrambe le applicazioni insieme, quindi tutto funziona.
Qualcuno ha una soluzione buona e semplice per questo problema? Anche in questo caso è solo in fase di sviluppo che ho questo problema.
Perché queste cose * non sono in esecuzione * nel tuo ambiente di sviluppo? – m02ph3u5
Sto utilizzando Angular 2 cli e non so se è possibile utilizzare il mio nodo come server e come configurarlo. – DNRN