Open jacob-cross99 opened 7 years ago
lib/oauth/index.js contains.
'use strict';
var FacebookStrategy = require('passport-facebook');
var config = require('./../config');
var database = require('./../database');
module.exports = class Oauth {
static get facebook() {
return new FacebookStrategy({
clientID: config.facebook.app_id,
clientSecret: config.facebook.app_secret,
callbackURL: 'http://localhost:3000/oauth/redirect',
profileFields: ['id', 'displayName', 'gender', 'birthday', 'emails', 'location']
}, (accessToken, refreshToken, profile, cb) => {
database.query('SELECT * FROM `accounts` WHERE id=?', profile.id)
.spread((rows) => {
if(rows.length !== 0) {
database.query('UPDATE `accounts` SET displayName=?,email=?,gender=?,birthday=?,city=?,region=?,access_token=? WHERE id=?', [
profile.displayName,
profile.emails[0].value,
profile.gender,
profile._json.birthday,
profile._json.location.name.split(', ')[0],
profile._json.location.name.split(', ')[1],
accessToken,
profile.id
])
.spread(() => {
cb(null, {
id: profile.id,
displayName: profile.displayName,
email: profile.emails[0].value,
gender: profile.gender,
birthday: profile._json.birthday,
city: profile._json.location.name.split(', ')[0],
region: profile._json.location.name.split(', ')[1],
access_token: accessToken
});
})
.catch((err) => {
cb('An error occured within the database');
});
} else {
database.query('INSERT INTO `accounts` SET ?', {
id: profile.id,
displayName: profile.displayName,
email: profile.emails[0].value,
gender: profile.gender,
birthday: profile._json.birthday,
city: profile._json.location.name.split(', ')[0],
region: profile._json.location.name.split(', ')[1],
access_token: accessToken
})
.spread(() => {
cb(null, {
id: profile.id,
displayName: profile.displayName,
email: profile.emails[0].value,
gender: profile.gender,
birthday: profile._json.birthday,
city: profile._json.location.name.split(', ')[0],
region: profile._json.location.name.split(', ')[1],
access_token: accessToken
});
})
.catch((err) => {
cb('An error occured within the database');
});
}
})
.catch((err) => {
cb('An error occured within the database');
});
}
);
}
}
Line 30 is:
cb(null, {
id: profile.id,
displayName: profile.displayName,
email: profile.emails[0].value,
gender: profile.gender,
birthday: profile._json.birthday,
city: profile._json.location.name.split(', ')[0],
region: profile._json.location.name.split(', ')[1],
access_token: accessToken
});
I have the same problem I think this module does not support new facebook API. I think profile is empty.Maybe Facebook change data format.
Hello, I am getting the following error:
ValidationError: "value" must be an object at Object.exports.process (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\joi\lib\errors.js:140:17) at internals.Any.validate (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\joi\lib\any.js:667:25) at Object.module.exports [as sign] (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\jsonwebtoken\sign.js:93:47) at router.route.get (C:\Users\nsa\Desktop\QuickBucks\Server\lib\routes\oauth\index.js:13:9) at Layer.handle [as handle_request] (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\express\lib\router\route.js:131:13) at complete (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\middleware\authenticate.js:250:13) at C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\middleware\authenticate.js:257:15 at pass (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\authenticator.js:421:14) at Authenticator.transformAuthInfo (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\authenticator.js:443:5) at C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\middleware\authenticate.js:254:22 at C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\http\request.js:60:7 at pass (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\authenticator.js:267:43) at serialized (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\authenticator.js:276:7) at passport.serializeUser (C:\Users\nsa\Desktop\QuickBucks\Server\index.js:23:42) at pass (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\authenticator.js:284:9) at Authenticator.serializeUser (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\authenticator.js:289:5) at IncomingMessage.req.login.req.logIn (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\http\request.js:50:29) at Strategy.strategy.success (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport\lib\middleware\authenticate.js:235:13) at verified (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\passport-oauth2\lib\strategy.js:177:20) at database.query.spread (C:\Users\nsa\Desktop\QuickBucks\Server\lib\oauth\index.js:30:19) at tryCatcher (C:\Users\nsa\Desktop\QuickBucks\Server\node_modules\bluebird\js\release\util.js:16:23)