尝试通过AngularJS通过护照进行身份验证。我发现很多线程都说这个问题是请求的默认Content-Type。尝试了几种方法,我总是得到400错误(错误请求)。
$http.post('/login', {
username: $scope.user.username,
password: $scope.user.password
})
.success(function(user) {
console.log('success');
// $location.url('/');
})
.error(function() {
console.log('failed');
// location.url('/login')
})
[剪掉一些我认为不是问题的东西]
UDPATE:我认为这可能是护照问题。使用正文解析器中间件,我能够告诉我我以下列格式发送数据: {username:me,密码:12345} 唉,我仍然得到错误代码400。
var bodyParser = require('body-parser');
var jsonParser = bodyParser.json();
app.post('/login', jsonParser, function(req,res) {
if (!req.body) {
console.log('no body');
return res.sendStatus(400);
}
console.log(req.body);
res.end(req.user);
});
这是本地策略
passport.use(new LocalStrategy(
function(username, password, done) {
if (username === "me" && password === "123") {
return done(null, {name: "me"});
}
return done(null, false, {message: 'Incorrect username or password.'});
}
));
当我试图让护照上班时的路线。
app.post('/login',passport.authenticate('local'), function(req,res) {
console.log('login in server.js')
res.send(req.user);
});
基于我读过的所有内容,我确定这都是标准的。
答案 0 :(得分:0)
需要这个...
var bodyParser = require('body-parser');
app.use(bodyParser.json());