Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 执行passport.authenticate时,在get post中显示为unauthorized 404_Angularjs_Node.js_Express_Passport.js_Passport Local - Fatal编程技术网

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>存在一些问题,因为它用于验证本地护照。