Node.js Passportjs本地策略从未被调用

Node.js Passportjs本地策略从未被调用,node.js,passport.js,passport-local,Node.js,Passport.js,Passport Local,我正在学习passportjs,我的服务器.js中有以下代码,我面临的问题是,下面代码中的passport.use('local',new LocalStrategy({})从未被调用,其余的都很好,除了LocalStrategy,已经为此挣扎了几个小时 const express=require("express"); const bodyParser=require('body-parser'); const ejs=require("ejs"); const cookieParser=re

我正在学习passportjs,我的服务器.js中有以下代码,我面临的问题是,下面代码中的
passport.use('local',new LocalStrategy({})
从未被调用,其余的都很好,除了LocalStrategy,已经为此挣扎了几个小时

const express=require("express");
const bodyParser=require('body-parser');
const ejs=require("ejs");
const cookieParser=require('cookie-parser');
const passport=require('passport');
const LocalStrategy=require('passport-local').Strategy;
const session=require("express-session");
const app=express();
app.set(express.static,'public');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(session({secret:'library'}));

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

app.post('/auth/signUp',(req,res,next)=>{
    console.log('body',req.body)
    passport.authenticate('local',(err,user,info)=>{
        console.log("whattt",user)
        req.login(user,(err)=>{
            res.redirect('/auth/profile');
        });
    })(req, res, next);
});

app.get('/auth/profile',(req,res)=>{

    res.json(req.user);
});


app.get("/",async (req,res)=>{

    res.render('index.ejs');
});

passport.serializeUser((user,done)=>{
    done(null,user.id);
});

passport.deserializeUser((id, done)=> {
    console.log("id",id);
    let data=[{id:1,name:"malouda"},{id:2,name:"Jason"}];
    let user = data.find((obj)=>{ return obj.id === id; });
    done(null,user);
});

passport.use('local',new LocalStrategy({
    usernameField: 'username',
    passwordField: 'password'
},(username,password,done)=>{
    user={id:1,name:"malouda"};
    console.log("LocalStrategy")
    done(null,user);
})); 
app.listen(3000,()=>{
    console.log("Listening on port 6000");
});
我正在学习passportjs,我的服务器.js中有以下代码,我面临的问题是,下面代码中的
passport.use('local',new LocalStrategy({})
从未被调用,其余的都很好,除了LocalStrategy,已经为此挣扎了几个小时

const express=require("express");
const bodyParser=require('body-parser');
const ejs=require("ejs");
const cookieParser=require('cookie-parser');
const passport=require('passport');
const LocalStrategy=require('passport-local').Strategy;
const session=require("express-session");
const app=express();
app.set(express.static,'public');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(session({secret:'library'}));

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

app.post('/auth/signUp',(req,res,next)=>{
    console.log('body',req.body)
    passport.authenticate('local',(err,user,info)=>{
        console.log("whattt",user)
        req.login(user,(err)=>{
            res.redirect('/auth/profile');
        });
    })(req, res, next);
});

app.get('/auth/profile',(req,res)=>{

    res.json(req.user);
});


app.get("/",async (req,res)=>{

    res.render('index.ejs');
});

passport.serializeUser((user,done)=>{
    done(null,user.id);
});

passport.deserializeUser((id, done)=> {
    console.log("id",id);
    let data=[{id:1,name:"malouda"},{id:2,name:"Jason"}];
    let user = data.find((obj)=>{ return obj.id === id; });
    done(null,user);
});

passport.use('local',new LocalStrategy({
    usernameField: 'username',
    passwordField: 'password'
},(username,password,done)=>{
    user={id:1,name:"malouda"};
    console.log("LocalStrategy")
    done(null,user);
})); 
app.listen(3000,()=>{
    console.log("Listening on port 6000");
});
在我的index.js中,我有以下形式

<form name="signUpForm" action="/auth/signUp" method="post" multipart='urlencoded'>
                <div class="form-group">
                    <label for="username">Username</label>
                    <input type="text" class="form-control" name="username" id="username" placeholder="Username">
                </div>
                <div class="form-group">
                    <label for="exampleInputPassword1">Password</label>
                    <input type="password" class="form-control" name="password " id="exampleInputPassword1" placeholder="Password">
                </div>
                <button type="submit" class="btn btn-primary">Submit</button>
            </form>

用户名
密码
提交

Passport LocalStrategy用于登录身份验证

在注册中,您不需要passport。在注册中,您只需通过将用户存储在数据库中来创建用户

您需要添加

Passport.authenticate(`local`, (err, user, info) => {}
登录API中对用户进行身份验证

顾名思义,Passport.authenticate验证用户凭据。因此首先需要创建用户

希望我澄清了你的想法