gpt4 book ai didi

javascript - Passport local 使用 Angular 返回错误 400 错误请求

转载 作者:行者123 更新时间:2023-12-03 03:29:50 25 4
gpt4 key购买 nike

我正在尝试将 Passport 集成到我的代码的登录表单中。客户端调用服务器端正常工作,直到我在请求中调用 Passport.authenticate,返回 400 Bad Request。我在这里缺少什么。

HTML

        <div>
<div class="row">
<div class="input-field col s12">
<input id="user-email" type="text" ng-model="user.email">
<label for="user-email">Your email address</label>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<input id="user-password" type="password" ng-model="user.password">
<label for="user-password">Your password</label>
</div>
</div>
<div id="login-button-panel" class="center-align">
<button class="btn" id="login-btn" ng-click="vm.login(user);">Login</button>
</div>
<div class="section center">
<a class="modal-trigger">Forgot password?</a>
</div>
</div>

JS

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

服务器.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)
});

最佳答案

错误请求因缺少用户名和密码访问权限而被 Passport 抛出。

它正在检查字段 usernamepassword 的正文和 URL 查询。如果其中一个为假,则请求将被拒绝,状态为 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'})
}
));

关于javascript - Passport local 使用 Angular 返回错误 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34714202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com