当前位置:  开发笔记 > 编程语言 > 正文

Passport本地返回错误400错误请求与Angular

如何解决《Passport本地返回错误400错误请求与Angular》经验,为你挑选了3个好方法。

我正在尝试将护照整合到我的代码的登录表单中.客户端呼叫服务器端工作正常,直到我在请求中调用passport.authenticate,返回400 Bad Request.我在这里想念的是什么

HTML

        

JS

$http.post('/api/login',user).success(function(result){
    console.log(result)
})

server.js

passport.use(new LocalStrategy(
    function(username, password, done) {
        return done(null, false, {message:'Unable to login'})
    }
));
passport.serializeUser(function(user,done){
    done(null,user);
});

passport.deserializeUser(function(user,done){
    done(null,user);
});
app.post('/api/login', passport.authenticate('local'), function(req,res){
    res.json(req.user)
});

Thomas Urban.. 46

护照丢失了错误的请求,因为用户名和密码无法访问.

它正在检查字段username和URL的正文和URL查询password.如果其中一个是的,请求将被拒绝,状态为400.

在创建LocalStrategy时,您可以在附加参数中将一组选项传递给构造函数,使用选项usernameField和/或选择不同命名的字段passwordField.在您的特定情况下,这将是这样的:

passport.use(new LocalStrategy(
    {usernameField:"user-email", passwordField:"user-password"},
    function(username, password, done) {
        return done(null, false, {message:'Unable to login'})
    }
));

options对象应该是LocalStrategy构造函数中的第一个参数,而不是`passport.use`方法中的第二个参数. (2认同)


Jeff Hoye.. 11

在我的情况下(Express 4.0),我没有使用正文解析器



1> Thomas Urban..:

护照丢失了错误的请求,因为用户名和密码无法访问.

它正在检查字段username和URL的正文和URL查询password.如果其中一个是的,请求将被拒绝,状态为400.

在创建LocalStrategy时,您可以在附加参数中将一组选项传递给构造函数,使用选项usernameField和/或选择不同命名的字段passwordField.在您的特定情况下,这将是这样的:

passport.use(new LocalStrategy(
    {usernameField:"user-email", passwordField:"user-password"},
    function(username, password, done) {
        return done(null, false, {message:'Unable to login'})
    }
));


options对象应该是LocalStrategy构造函数中的第一个参数,而不是`passport.use`方法中的第二个参数.

2> Jeff Hoye..:

在我的情况下(Express 4.0),我没有使用正文解析器



3> 小智..:

此错误还来自尝试访问HTML DOM元素而不使用正文解析器

body-parser是一个模块,让你遍历html文档树来读取响应,特别是在输入字段的情况下

使用 -

var parser = require('body-parser');
var urlencodedParser = parser.urlencoded({extended : false});


    app.post("/authenticate", urlencodedParser, passport.authenticate('local'), function (request, response)
    {           
        response.redirect('/');                      
    });

推荐阅读
周扒pi
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有