Error:400 Bad Request
Error:400 Bad Request
routes.js
//require the passport strategy from the folder in the project.
var passport = require('passport');
var x = require('./usefile/file');
var requireLogin = passport.authenticate('local',{session: false});
module.exports = function(app){
var auth = express.Router();
app.use('/api/auth', auth);
auth.post('/login', requireLogin, function(req, res){
x.login(req, res)});
}
passport.js
var passport = require('passport');
var JwtStrategy = require('passport-jwt').Strategy;
var ExtractJwt = require('passport-jwt').ExtractJwt;
var LocalStrategy = require('passport-local').Strategy;
var config = require('./auth');
var User = require('../models/user');
var localOptions = {
usernameField: 'email',
};
var localLogin = new LocalStrategy(localOptions, function (email, password, done) {
User.find(
{ email: email }, function (err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, { error: 'Login failed,Please try again.' });
}
if (!isMatch) {
return done(null, false, { error: 'Login failed, Please try again.' });
}
user.comparePassword(function(password, isMatch){
if(err){
return done(err);
}
if(!isMatch){
return done(null, false, {error:'Login failed, Please try again.'});
}
return done(null, user);
});
});
});
passport.use(localLogin);
注意:我的代码没有使用用于从护照进行身份验证的 requireLogin
,因此显示 400 错误请求错误。
我参考了 API passport-local 文档,我发现:
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});
这里failureRedirect: '/login'
什么意思?
请帮忙。
通过查看您的代码,您的 var localOptions
声明中似乎没有 passwordField
,而且我在任何地方都看不到此 localOptions
的用法您使用 passport.js
进行身份验证的代码
按要求更新代码,就能克服400 bad request错误。
希望对您有所帮助!
检查你的分号和逗号。有一些额外的逗号,例如
var localOptions = {
usernameField: 'email',
};
应该是:
var localOptions = {
usernameField: 'email'
};
routes.js
//require the passport strategy from the folder in the project.
var passport = require('passport');
var x = require('./usefile/file');
var requireLogin = passport.authenticate('local',{session: false});
module.exports = function(app){
var auth = express.Router();
app.use('/api/auth', auth);
auth.post('/login', requireLogin, function(req, res){
x.login(req, res)});
}
passport.js
var passport = require('passport');
var JwtStrategy = require('passport-jwt').Strategy;
var ExtractJwt = require('passport-jwt').ExtractJwt;
var LocalStrategy = require('passport-local').Strategy;
var config = require('./auth');
var User = require('../models/user');
var localOptions = {
usernameField: 'email',
};
var localLogin = new LocalStrategy(localOptions, function (email, password, done) {
User.find(
{ email: email }, function (err, user) {
if (err) {
return done(err);
}
if (!user) {
return done(null, false, { error: 'Login failed,Please try again.' });
}
if (!isMatch) {
return done(null, false, { error: 'Login failed, Please try again.' });
}
user.comparePassword(function(password, isMatch){
if(err){
return done(err);
}
if(!isMatch){
return done(null, false, {error:'Login failed, Please try again.'});
}
return done(null, user);
});
});
});
passport.use(localLogin);
注意:我的代码没有使用用于从护照进行身份验证的 requireLogin
,因此显示 400 错误请求错误。
我参考了 API passport-local 文档,我发现:
app.post('/login',
passport.authenticate('local', { failureRedirect: '/login' }),
function(req, res) {
res.redirect('/');
});
这里failureRedirect: '/login'
什么意思?
请帮忙。
通过查看您的代码,您的 var localOptions
声明中似乎没有 passwordField
,而且我在任何地方都看不到此 localOptions
的用法您使用 passport.js
按要求更新代码,就能克服400 bad request错误。
希望对您有所帮助!
检查你的分号和逗号。有一些额外的逗号,例如
var localOptions = {
usernameField: 'email',
};
应该是:
var localOptions = {
usernameField: 'email'
};