Вход Nodejs не направляется на страницу профиля - PullRequest
0 голосов
/ 26 января 2019

Эй, приложение "Мой узел" не перенаправляет пользователя на страницу своего профиля. У меня есть простая электронная почта и форма паспорта, которая публикует user / login, затем вызывает user / me, который аутентифицирует токен и должен отправить файл профиля. Это бросает код 401, и я не знаю, как это исправить. Пожалуйста, помогите

Вот часть кода

спасибо

  <form action="/user/login" method="POST" id="form2">
          <input type="text" name="email" value="" placeholder="Enter Email....">
          <input type="password" name="password" value="" placeholder="Enter Password....">
          <button type="submit" name="submit" value="login" class="submit">Login</button>
        </form>

app.use(cookieParser());
app.use(session({
                 secret: 'secret',
                 saveUninitialized: true,
                 resave: false,
                 cookie: {
        maxAge: 10,
        sameSite: false,
        secure: process.env.NODE_ENV === 'production'
      }
  })
);

//Authentication
const authenticate = (req, res, next) => {
  const token = req.header('x-auth');

  User.findByToken(token).then((user) => {
    if (!user) {
      return Promise.reject();
    }
    req.user = user;
    req.token = token;
    next();
  }).catch((e) => {
    res.status(401).send();
  });
};

//Get User
app.get('/user/me', authenticate, (req, res, err) => {
  res.send(req.user);
  res.sendFile('/Profile/profiles.html');

});

// Post /users/login {email, password}
app.post('/user/login', (req, res) => {
    var body = _.pick(req.body, ['email', 'password']);
    User.findByCredentials(body.email, body.password).then((user) => {
      return user.generateAuthToken().then((token) => {
          res.header('x-auth', token).send();
          res.cookie('token', token).send();
          res.redirect('/user/me');
      });
    }).catch((e) => {
      res.status(400).send();
      // res.redirect('/failure');
    });
});
...