Angularjs 执行passport.authenticate时,在get post中显示为unauthorized 404
文件Angularjs 执行passport.authenticate时,在get post中显示为unauthorized 404,angularjs,node.js,express,passport.js,passport-local,Angularjs,Node.js,Express,Passport.js,Passport Local,文件router.js包含所使用的路由器 在ionic2中,通过将uri指定为http://localhost:8080/api/auth/login在调试器工具中出现400错误请求错误 我发现当我删除requireLogin时,帖子工作正常。但是我需要requireLogin`来验证passport的本地登录 router.js //require the passport strategy from the folder in the project. var passport = re
router.js
包含所使用的路由器
在ionic2中,通过将uri指定为http://localhost:8080/api/auth/login
在调试器工具中出现400
错误请求错误
我发现当我删除requireLogin时,帖子工作正常。但是我需要
requireLogin`来验证passport的本地登录
router.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);
注意:我的代码没有使用用于从passport进行身份验证的requireLogin,因此显示400错误请求错误
请帮助。您需要本地护照文件吗?您似乎需要npm passport模块,而不是您的本地文件 您应该将
router.js
中的第一行代码更改为
//需要项目文件夹中的passport策略。
var passport=要求('./护照')//@robertklep如果你能帮忙的话……是的,我已经需要本地passport文件,正如我在router.js
评论的第一行中提到的,并且我指出你在router.js
中需要的不是你的本地文件,而是npm模块。要使其成为本地的,您需要在其前面加上/
;明白了吗?它正在显示错误:找不到模块“/passport”
请将它指向保存passport.js
文件的任何地方。实际上,我的服务器正在访问端点,但是router.js
auth.post('/login',requireLogin,function(req,res){x.login(req,res);}此requireLogin
中的code>存在一些问题,因为它用于验证本地护照。