node.js – Passport本地策略完成回调并不通过错误json消息

我试图在身份验证失败时传递 JSON消息,在LocalStrategy中使用完成的回调,但是我所得到的只有401和“未授权”字符串在响应中.

var express = require('express');
var bodyParser = require('body-parser');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

var app = express();
app.use(bodyParser.json());
app.use(passport.initialize());

passport.serializeUser(function(user,done) {
    done(null,user.email);
});

var strategy = new LocalStrategy({ usernameField: 'email' },function (email,password,done) {
        if (email === 'test@gmail.com' && password === 'pass') {
            return done(null,{ email: 'test@gmail.com' });
        } else {
            // never get this json object on the client side when posting invalid credentials
            return done(null,false,{ message: 'invalid email or password' });
        }
    }
);

passport.use(strategy);

app.post('/login',passport.authenticate('local'),function(req,res) {
    console.log(req.user);
    res.json(req.user);
});


app.get('/',res) {
    res.json({ message: 'hello!' });
});

var server = app.listen(3000,function() {
    console.log('api is listening on ',server.address().port);
});

的package.json

{
  "name": "passport_example","version": "1.0.0","description": "","main": "app.js","scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },"author": "","license": "ISC","dependencies": {
    "body-parser": "^1.13.3","express": "^4.13.3","passport": "^0.2.2","passport-local": "^1.0.0"
  }
}

我究竟做错了什么?

解决方法

您设置的消息值存储在会话和闪存中.我不认为护照有任何选择发送json错误消息.但是您可以在身份验证方法中传回回调,并从中发送消息:

app.post('/login',res,next ){
    passport.authenticate('local',function(err,user,info) {
      if (err) { return next(err) }
      if (!user) { return res.json( { message: info.message }) }
      res.json(user);
    })(req,next);   
});

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...