Я пытаюсь реализовать социальную аутентификацию в Node.js с помощью Passport, в результате чего мне нужно использовать findOrCreate () при настройке моей стратегии аутентификации Facebook.Это мой facebook.js, где происходит конфигурация:
var passport = require('passport');
var FacebookStrategy = require('passport-facebook');
var User = require('../models/user');
var config = require('../_config');
var init = require('./init');
passport.use(new FacebookStrategy({
clientID: 1900216703426978,
clientSecret: 'f2c2ee6069de323109cb9347fad01026',
callbackURL: "http://localhost:3000/passport/facebook/callback"
},
User.findOrCreate({ facebookId: profile.id }, function (err, user) {
return cb(err, user);
})
));
init();
module.exports = passport;
, а это мои модели / user.js
'use strict';
module.exports = (sequelize, DataTypes) => {
const user = sequelize.define('user', {
firstName: DataTypes.STRING,
lastName: DataTypes.STRING,
email: DataTypes.STRING,
password: DataTypes.STRING,
}, {});
user.associate = function(models) {
// associations can be defined here
};
return user;
}
На основании документации от http://docs.sequelizejs.com/manual/tutorial/models-usage.html, Я предположилчто findOrCreate () является встроенным методом, доступным для моделей.Однако в моем facebook.js есть указатель на findOrCreate (), подчеркивающий, что метод не разрешен.
Я убедился, что мне нужен правильный каталог, и я также попытался найти решение по этой ссылке: Что делает функция User.findOrCreate и когда она вызывается в паспорте? , которая такжетребуется метод findOne (), который также не разрешен.
Создаю ли я эти функции в моем model / user.js или что-то не так с моей моделью пользователя?Дайте мне знать, если мне не хватает, предоставив какой-либо код.