passport.use (new LocalStrategy ({usernameField: 'email'}, User.authenticate ())); Ошибка типа: User.authenticate не является функцией - PullRequest
0 голосов
/ 22 февраля 2020
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 строки показывают ошибку, что «authenticate» не является функцией

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

после удаления выше 3 строк сервер запускается, но не получает аутентификацию

вот файл usermodel

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);
...