已经问过这个问题,但其他答案对我没有帮助。我有一个解析用户名和密码并从数据库进行身份验证的登录表单,并且不断收到i1 <- dt[, Reduce(`|`, lapply(.SD, `==`, 10)), .SDcols = cols]
test2 <- dt[i1]
identical(test1, test2)
#[1] TRUE
错误。
Cannot POST /
用于登录的Pug文件:
const express = require('express');
const app = express();
app.get('/', sessionChecker, (req, res) => {
res.redirect('/login');
});
// route for user Login
app.route('/login')
.get(sessionChecker, (req, res) => {
res.render('login.pug');
})
.post((req, res) => {
var username = req.body.username;
var password = req.body.password;
User.findOne({ where: { username: username } }).then(function (user) {
if (!user) {
res.redirect('/login');
} else if (!user.validPassword(password)) {
res.redirect('/login');
} else {
req.session.user = user.dataValues;
res.redirect('/dashboard');
}
});
});
app.listen(3000, function () {
console.log('express is running on port 3000');
});
我在哪里弄错了?
答案 0 :(得分:1)
您尝试在/login
路线登录,但将帖子发送到/
。将帕格更改为
form(action='/login', method='POST')
顺便说一句:如果您使用Passport,则可以轻松添加其他登录方法:Google,FB,Twitter,...
答案 1 :(得分:0)
我看不到快递应用程序在哪里处理帖子
执行以下操作:
app.post('/', function (req, res) {
res.send('hello world')
})
答案 2 :(得分:-1)
我建议您使用JWT令牌身份验证,因此您不必担心先在/ login上调用“ ./get”,然后再调用“ ./post”来检查会话。
使用JWT可以令牌,您可以简单地提供令牌验证,如果令牌到期或重定向到新页面时进行验证,它将自动重定向到登录页面。
此外,如果您进一步了解JWT,那么您会发现,您还可以通过令牌传递数据,根据用户登录名可以是Permissions。