Gen*_*Lim 20 javascript express angularjs passport-local passport.js
我正在尝试将护照整合到我的代码的登录表单中.客户端呼叫服务器端工作正常,直到我在请求中调用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>
Run Code Online (Sandbox Code Playgroud)
JS
$http.post('/api/login',user).success(function(result){
console.log(result)
})
Run Code Online (Sandbox Code Playgroud)
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)
});
Run Code Online (Sandbox Code Playgroud)
Tho*_*ban 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'})
}
));
Run Code Online (Sandbox Code Playgroud)
小智 6
此错误还来自尝试访问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('/');
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12025 次 |
| 最近记录: |