node.js - 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');
});
});
解决方案
推荐阅读
- c++ - 在没有比较运算符的情况下找到两个数字之间的最小值
- typescript - 打字稿将泛型约束为字符串文字类型以用于计算对象属性
- javascript - 获取日期格式为“DD-MM-YYYY”
- twitter-bootstrap - 整个滑动仅包含带有两个控制箭头的文本
- reactjs - 如何使用反应路由器重定向
- wpf - 依赖属性概念
- matrix - 优化 C 中的矩阵计算
- c# - 找不到 GET 的路由 / - 无法提供默认 index.html
- ios - 将 iPhone X 状态栏样式颜色更改为白色
- intellij-idea - 如何在“长单字符串”异常下强制在 Intellij 中启用软包装?