passport.use方法不使用护照本地策略

时间:2018-01-12 09:27:47

标签: javascript node.js express npm passport.js

调用login和submit表单时, use.authenticate()方法没有执行,也没有显示任何错误消息。

Server.js 文件:

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

passport.use(new Strategy(
    function (username,password,done) {
        User.findOne({username:username,password:password},(err,res)=>{
            if(err)throw err;
            displayName=username;
            console.log(res);
            return done(null,res);
        })
    }
));

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

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

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

login.hbs 档案:

<article class="article">
    <h1>login</h1>
    <form action="/login" method="post">
        Username<input type="text" name="username"><br>
        Password<input type="password" name="password"><br>
        <input type="submit" value="Login">
    </form>
</article>

1 个答案:

答案 0 :(得分:0)

您是否在代码的其他部分初始化了护照?

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