Po pomyślnym uwierzytelnieniu użytkownika, a użytkownik zostanie zalogowany, Wszystkie wnioski dotyczące mojego interfejsu API otrzymują status oczekujący. Moje testy stwierdzają, że dzieje się to tylko wtedy, gdy i po req.login działa.

req.login(user, loginErr => {
        if (loginErr) {
          return next(loginErr);
        }
        return res.send({ success : true, message : 'authentication succeeded' });
      }) 

Pełny kod paszportu logowania

  router.post('/login', function(req, res, next) {
    passport.authenticate('local', function(err, user, info) {
      if (err) {
        return next(err);
      }

      if (! user) {
        return res.send({ success : false, message : info.message });
      }
      
      req.login(user, loginErr => {
        if (loginErr) {
          return next(loginErr);
        }
        return res.send({ success : true, message : 'authentication succeeded' });
      })

    })(req, res, next);
  });

Z tego, co mogę zrozumieć, musi być coś blokującego wszystkie wnioski po.

Kodeks klienta

let config = {
                headers: {
                  'Content-type' : 'application/x-www-form-urlencoded'
                }
              }
    
              const user = `username=${username}&password=${password}`;
    
              await axios.post(`/auth/signup`, user, config)
              .then(res => {
                // USER IS LOGGED IN
                if(res.data.success) {
                  //this.closePopup(); // POPUP gets closed.
                }
              })

Co może być przyczyną tego? Dziękuję Ci

0
RustyMan 11 październik 2020, 17:03

1 odpowiedź

Najlepsza odpowiedź

Problem był z app.use(passport.session()); Trzeba było umieścić pod trasą.

0
RustyMan 11 październik 2020, 15:01