我在使用MySQL设置passport-facebook时遇到了困难。
我看到的每个地方都找到了mongodb,并且使用mongodb可以将profile._json对象发布到数据库中但是使用MySQL则不能。
passport.use(new FacebookStrategy({
clientID : "",
clientSecret : "",
callbackURL : ""
}), function (accessToken, refreshToken, profile, done){
db.query("SELECT * FROM users WHERE facebook_id = ?", [profile.id], function(err, user){
if (err){
return done(err);
}
else if (user.length == 0){
var name = profile.displayName;
var email = profile.emails[0].value;
var username = profile.username;
var provider = "facebook";
var facebook = profile._json;
db.query("INSERT INTO users (name, email, username, provider, token) VALUES (?, ?, ?, ?, ?)",
[name, email, username, provider, /* profile._json?? */], function(err){
})
}
else{
return done(err, user);
}
});
});
需要保存的profile._json的内容及其类型是什么,以便我可以在MySQL数据库中创建字段?
是否有可能我应该设置mongodb并将信息保存在那里并使用MySQL数据库进行其他操作?我也在为我的API使用谷歌身份验证。
答案 0 :(得分:0)
尝试
let user= {Facebook_ID: profile.id, First_Name: profile.displayName, FB_Private_Chat_ID: '000001100'};
mysqlconnection.query('INSERT INTO users SET ?', user, (err, res) => {
if(err) throw err;
console.log('Last insert ID:', profile.id);
})