我一直试图在nodejs上使用护照进行本地身份验证工作,并且我可以告诉我所有的代码它是正确的但我一直得到同样令人讨厌的错误“未知身份验证策略所以也许其他人可以帮助我有了这个问题,我的代码如下所示。
这是我在nodejs中配置护照的代码。
app.post('/signin', passport.authenticate('local-login', {
successRedirect : '/profile',
failureRedirect : '/login',
failureFlash : true
}));
这是服务器端的帖子。
<div id="signin">
<form class="form-horizontal" method="POST" action="/signin">
<div class="form-group">
<label class="control-label col-sm-2">Username:</label>
<div class="col-xs-3">
<input type="text" class="form-control"></input><br>
</div>
</div>
<div class="form-group">
<label class="control-label col-sm-2">Password:</label>
<div class="col-xs-3">
<input type="password" class="form-control"></input><br><br>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-default btn-lg">Sign In</button><br><br>
</div>
</div>
</form>
<div id="accountlinks">
<a href="/signup">Create Account</a><br>
<a href="">Forgot Password</a>
</div>
</div>
这是html doc
中的表单{{1}}
任何人都可以通过告诉我我做错了什么来帮助我。感谢
答案 0 :(得分:7)
require('./config/passport')(passport);
更改文件的路径。如果没有这项工作,护照的配置将不会传递给路线。
以下是该行所在位置的片段:
// server.js
// configuration
===============================================================
mongoose.connect(configDB.url); // connect to our database
require('./config/passport')(passport); // pass passport for configuration
答案 1 :(得分:1)
我也遇到了同样的问题,但是当我在app.use(flash())
工作之后放置这行代码时:
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
require('./config/passport')(passport);