Node.js Passportjs本地策略从未被调用
我正在学习passportjs,我的服务器.js中有以下代码,我面临的问题是,下面代码中的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
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验证用户凭据。因此首先需要创建用户
希望我澄清了你的想法