gpt4 book ai didi

javascript - Passport mongoose Object # 没有方法 'authenticate' 但我可以看到该方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:10 27 4
gpt4 key购买 nike

我遇到了一个没有意义的问题,无法弄清楚希望有人可以提供帮助。

我正在使用一些 Mongoose 插件,现在也尝试集成护照。我已经添加了 Passport-local-mongoose 插件,如下所示,但我收到该方法不存在的错误。将架构记录到控制台时,我可以看到列出的方法,所以我不确定为什么它不存在。

代码示例:

var mongoose = require('mongoose');
var timestamps = require('mongoose-timestamp');
var autoIncrement = require('mongoose-auto-increment');
var passport = require('passport');
var passportLocalMongoose = require('passport-local-mongoose');
var BasicStrategy = require('passport-http').BasicStrategy;

var usersSchema = new mongoose.Schema({
firstName: String,
lastName: String,
email: String,
organizationId: Number,
description: String
});

module.exports = function(app,db){
//mongoose setup options
usersSchema.plugin(timestamps);
usersSchema.plugin(autoIncrement.plugin, { model: 'Users', field: 'id' });

//passport authentication setup
usersSchema.plugin(passportLocalMongoose);
var Users = db.model('Users', usersSchema);
console.log(usersSchema);

passport.use(new BasicStrategy(usersSchema.authenticate()));

控制台日志摘录如下:

methods:
{ nextCount: [Function],
resetCount: [Function],
setPassword: [Function],
authenticate: [Function] },
statics:
{ nextCount: [Function],
resetCount: [Function],
authenticate: [Function],
serializeUser: [Function],
deserializeUser: [Function],
register: [Function],
findByUsername: [Function],
createStrategy: [Function] },

但我收到以下错误:

passport.use(new BasicStrategy(usersSchema.authenticate()));
^
TypeError: Object #<Schema> has no method 'authenticate'

我可以看到该方法可用,为什么我无法访问它。如果我错过了一些基本的东西,我很抱歉,我仍在学习其中的一些东西。感谢您的帮助。

最佳答案

验证方法是在模型上定义的,而不是在架构上 -

passport.user(new  BasicStrategy(Users.authenticate());

关于javascript - Passport mongoose Object #<Schema> 没有方法 'authenticate' 但我可以看到该方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21924963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com