【问题标题】:Passport local strategy not being called未调用护照本地策略
【发布时间】:2017-11-17 07:50:32
【问题描述】:

更新:我已经下载了express-4.x-local-example,但似乎也无法正常工作。有什么我遗漏的吗?

我正在尝试为护照设置本地策略,但它没有被解雇。输入凭据后,页面重定向到 failureRedirect。

app.js

const express = require('express')
    , app = express()
    , mainRouter = require('./controllers/mainRouter');

mainRouter(app);

mainRouter.js

const bodyParser = require('body-parser')
    , passport = require('passport')
    , passportConfig = require('../config/passport');

passportConfig(passport);

module.exports = (app) => {    
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(passport.initialize());
    app.use(passport.session());

    app.post('/login', passport.authenticate(('local'), {
        successRedirect: '/',
        failureRedirect: 'login/',
        })
    );            
}

passport.js

const LocalStrategy = require('passport-local').Strategy;

module.exports = (passport) => {
    passport.use(new LocalStrategy({usernameField: 'email'},
        (email, password, done) => {
            console.log('This message is not being logged.');
        })
    );
}

【问题讨论】:

    标签: node.js express passport.js


    【解决方案1】:

    您实际上并未在 mainRouter.js 文件中调用该策略。

    在app.post之前,添加passport.use(passportConfig);

    【讨论】:

    • 我已经尝试过了,但是得到了错误:身份验证策略必须有一个名称passportConfig(passport) 不是应该加载策略吗?
    • @AlPeterson 它需要一个名称,因为它是本地策略。试试const passportStrat = passport.use(new LocalStrategy({usernameField: 'email'}, (email, password, done) => { console.log('This message is not being logged.'); }) ); 然后:passport.use('basic', passportStrat);
    猜你喜欢
    • 2013-09-12
    • 1970-01-01
    • 2019-07-02
    • 2018-06-21
    • 2016-05-29
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多