![](/img/trans.png)
[英]Error: Unknown authentication strategy “local” (Express & Passport)
[英]Unknown authentication strategy “local”
我正在嘗試對我網站上的用戶進行身份驗證,我收到了此錯誤消息
未知的身份驗證策略'local-login'
我已經嘗試更改策略的名稱,我也讀過SO中的其他線程,但沒有找到解決方案。
// Passport
module.exports = function(passport) {
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
connection.query('SELECT * FROM `users` WHERE `id` = ' + connection.escape(id), function(err, rows) {
done(err, rows[0]);
});
});
passport.use('local-login', new LocalStrategy({
usernameField : 'username',
passwordField : 'password'
},
function(req, username, password, done) {
connection.query('SELECT * FROM `users` WHERE `username` = ' + connection.escape(username), function(err, rows) {
if(err)
return done(err);
if(!rows.length) {
return done(null, false, req.flash('loginMessage', 'Invalid username or password. Please try again.'));
}
if(!(rows[0].password == password))
return done(null, false, req.flash('loginMessage', 'Invalid username or password. Please try again.'));
return done(null, rows[0]);
});
}));
}
// Express Router
app.use(sessionMiddleware);
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use('/static', express.static('./static'));
app.post('/login/auth', passport.authenticate('local-login', {
successRedirect: '/dashboard',
failureRedirect: '/',
failureFlash: true
}));
首先檢查您的安裝:
npm install passport passport-local --save
然后導入護照如下:
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
在你的app.use()
方法之前:
...
..
app.use(passport.initialize());
app.use(passport.session());
然后按如下方式使用它。 (無需將'local-login'作為第一個參數)
passport.use(new LocalStrategy({
usernameField : 'username',
passwordField : 'password'
}, (req, username, password, done) => {
// Your logic here...
...
..
}));
}
最后在您的路由器中:
app.post('/login/auth', passport.authenticate('local', {
successRedirect: '/dashboard',
failureRedirect: '/',
failureFlash: true }),
function(req, res) {
res.redirect('/');
});
更多信息: 本地護照
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.