postman request doesnt show results and stuck on sending request

19 Views Asked by At

the problem may reside either in the /login route or in the local strategy but a post request to /login makes postman send infinitely and no results come back. i've searched a lot but there doesn't seem to be any answers that can help me. only thing i've found that is close to my problem is how removing the "app.use(express.json())" middleware removed the sending forever problem but instead returned a 404 status. how can i fix this?

require('dotenv').config()
const express = require('express');
const session = require('express-session');
const productsRouter = require('./routes/products/productsRouter');
const accountsRouter = require('./routes/accounts/accountsRouter');
const accountsQuery = require('./routes/accounts/accountsQuery')
const Passport = require('passport');
const LocalStrategy = require('passport-local').Strategy

const app = express();

app.use(session({
  secret: 'anything'
}));

app.use(Passport.initialize());
app.use(Passport.session());

Passport.serializeUser((account, done) => {
  done(null, user.id)
});
Passport.deserializeUser((id, done) => {
  accountsQuery.getOneById(id, (err, user) => {
    done(null, user)
  })
})

Passport.use(
  new LocalStrategy((username, password, done) => {
    accountsQuery.getOneByUsername(username, (err, user) => {
      if (err) return done(err);
      if (!user) return done(null, false);
      if (user.password !== password) return done(null, false);
      return done(null, user)
    });
  })
);

const PORT = process.env.PORT || 4000;

app.use(express.json())
app.use('/accounts', accountsRouter)
app.use('/products', productsRouter)

app.post('/login', 
Passport.authenticate('local', {failureRedirect: '/login'}), 
  async (req, res) => {
    const account = await accountsQuery.getOneByUsername(req.body.username)
    res.status(200).json(account)
  }
)
app.get('/logout', (req, res) => {
  req.logout();
  res.send('logged out ')
})

app.listen(PORT, () => {
  console.log(`Server is listening on ${PORT}`);
});
0

There are 0 best solutions below