首页 > 解决方案 > passport.use(new LocalStrategy({usernameField:'email'},User.authenticate())); TypeError:User.authenticate 不是函数

问题描述

const express=require('express');
const app=express();

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


//requiring user route
const userRoutes=require('./routes/users');

//requiring user model

const User=require('./models/usermodel');
dotenv.config({path:'./config.env'});

//middleware for session
  ***********   
//passport middleware
app.use(passport.initialize());
app.use(passport.session());

以下 3 行显示错误,“验证”不是函数

passport.use(new LocalStrategy({usernameField:'email'},User.authenticate()));
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

删除以上 3 行后,服务器启动但未获得身份验证

这是用户模型文件

const mongoose=require('mongoose');
const passportLocalMongoose=require('passport-local-mongoose');

let userSchema=new mongoose.Schema({
    name:String,
    email:String,
    password:{
        type:String,
        select:false
    }
});

userSchema.plugin(passportLocalMongoose,{usernameField:'email'});

module.exports=mongoose.model('User',userSchema);

标签: javascriptnode.jsexpresspassport.jspassport-local

解决方案


推荐阅读