首页 > 解决方案 > Nodejs登录未定向到个人资料页面

问题描述

嘿,我的节点应用程序没有将用户引导到他们的个人资料页面。我有一个简单的电子邮件和护照表格,可以发布用户/登录名,然后调用 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');
    });
});

标签: node.jsexpressauthenticationlogintoken

解决方案


推荐阅读