问题描述
我正在尝试将护照集成到我的代码的登录表单中.客户端调用服务器端将按应有的方式工作,直到我在请求中调用"passport.authenticate",返回了400 Bad Request.我在这里想念什么.
I am trying to integrate passport to my code's login form. Client side calling server side works as it should until i call passport.authenticate in the request, 400 Bad Request was returned. What am I missing here.
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)
})
server.js
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)
});
由于缺少对用户名和密码的访问权限,护照抛出了
推荐答案
错误的请求.
它正在检查正文和URL查询中的字段username
和password
.如果其中一个是 fassy ,则该请求将被拒绝,状态为400.
It is checking body and URL query for fields username
and password
. If either is falsy the request is rejected with status 400.
在创建LocalStrategy时,您可以将其他选项中的选项集传递给构造函数,以使用选项usernameField
和/或passwordField
选择其他命名字段.在您的特定情况下,它看起来像这样:
On creating your LocalStrategy you may pass set of options in additional argument to constructor choosing differently named fields using options usernameField
and/or passwordField
. In your particular case this would look like this:
passport.use(new LocalStrategy(
{usernameField:"user-email", passwordField:"user-password"},
function(username, password, done) {
return done(null, false, {message:'Unable to login'})
}
));
这篇关于护照本地返回错误400错误请求与Angular的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!