Nodejs - Паспорт, сделано не функция - PullRequest
0 голосов
/ 22 декабря 2018

Я изучаю паспорт и локальный паспорт, используя следующие версии:

"passport": "^ 0.4.0", "passport-local": "^ 1.0.0"

Проблема в том, что при попытке записать реестр пользователей после получения данных формы, появляется следующее сообщение об ошибке:

(узел: 9120) UnhandledPromiseRejectionWarning: TypeError: done is notфункция в Strategy.passport.use.LocalStrategy [as _verify] (C: \ codes \ Gclimb \ passport \ localAuth.js: 27: 5)

Это код для моего localAuth.js

const passport = require('passport')
const LocalStrategy = require('passport-local').Strategy
const User = require('../models/user')

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

passport.deserializeUser(async(id, done) => {
    const user = await User.findById(id)
    done(null, user)
})

passport.use('local-signup', new LocalStrategy({

    usernameField: 'username',
    passwordField: 'password',
    passReqToCallback: true

}, async (req, username, email, password, done) => {

    const user = new User()
    user.email = email
    user.password = password
    user.username = username
    await user.save()
    done(null, user) // <----- Line 27(error)
}))

Ответы [ 2 ]

0 голосов
/ 17 февраля 2019

Удалите «req» в асинхронном режиме.Готово будет работать снова.Я думаю проблема в новой версии PassportJS

0 голосов
/ 22 декабря 2018

Вы передаете аргументы меньше, чем ожидаете

Я удалил письмо на данный момент, если это сработает, мы будем беспокоиться о письме

const passport = require('passport')
const LocalStrategy = require('passport-local').Strategy
const User = require('../models/user')

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

passport.deserializeUser(async(id, done) => {
    const user = await User.findById(id)
    done(null, user)
})

passport.use('local-signup', new LocalStrategy({

    usernameField: 'username',
    passwordField: 'password',
    passReqToCallback: true

}, async (req, username, password, done) => {

    const user = new User()
    user.password = password
    user.username = username
    await user.save()
    done(null, user) // <----- Line 27(error)
}))
...