【问题标题】:User authentication using passport.js giving error使用 passport.js 进行用户身份验证给出错误
【发布时间】:2017-05-30 23:57:58
【问题描述】:

我对@9​​87654322@ 和passport.js 很陌生。我正在尝试学习如何使用this video 制作身份验证应用程序,但在视频中达到 31:04 后我一直收到此错误。

"TypeError: 无法读取未定义的属性 'name' at Authenticator.use"

这是我的app.js 文件:

var express = require('express');
var bodyParser = require('body-parser');
var cookieParser = require('cookie-parser');
var expressSession = require('express-session');

var passport = require('passport');
var passportLocal = require('passport-local');

var app = express();

app.set('view engine', 'ejs');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
    secret: process.env.SESSION_SECRET
app.use(expressSession({  || 'secret',
    resave: false,
    saveUninitialized: false
}));


app.use(passport.initialize());
app.use(passport.session());

passport.use(passportLocal.Strategy(function(username, password, done){
    //connect to a real db here
    if(username===password){
        done(null,{id: username, name: username});
        //these actually have to bbe pulled from the db
    }
    else{
        done(null,null);
    }
}));


app.get('/', function(req, res){
    res.render('index',{
        isAuthenticated: req.isAuthenticated(),
        user: req.user

    });
});

app.get('/login', function(req, res){
    res.render('login');
});

app.post('/login', passport.authenticate('local' , function(req,res){
    res.redirect('/');
}));



var port = process.env.PORT || 1337;

app.listen(port, function(err,res){
    if(err)
        console.log(err);
    else
        console.log('server started on localhost:'+ port +' /');
});

【问题讨论】:

    标签: javascript node.js authentication passport.js


    【解决方案1】:

    您必须致电new 运营商:

    passport.use(new passportLocal.Strategy(function(username, password, done){
        //connect to a real db here
        if(username===password){
            done(null,{id: username, name: username});
            //these actually have to bbe pulled from the db
        }
        else{
            done(null,null);
        }
    }));
    

    我相信这是你的问题。

    【讨论】:

    • 是的,就是这样!太感谢了。 ^_^
    猜你喜欢
    • 2023-04-03
    • 2018-05-03
    • 2023-04-05
    • 2018-01-17
    • 2013-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2013-11-02
    相关资源
    最近更新 更多