Skip to content

Instantly share code, notes, and snippets.

@DavyBello
Created January 21, 2019 19:18
Show Gist options
  • Save DavyBello/af27b81f4a89c5b9982cd08bd5560b74 to your computer and use it in GitHub Desktop.
Save DavyBello/af27b81f4a89c5b9982cd08bd5560b74 to your computer and use it in GitHub Desktop.
graphql-social-auth Tutorial
const passport = require('passport');
const FacebookTokenStrategy = require('passport-facebook-token');
const { Strategy: GoogleTokenStrategy } = require('passport-google-token');
// FACEBOOK STRATEGY
const FacebookTokenStrategyCallback = (accessToken, refreshToken, profile, done) => done(null, {
accessToken,
refreshToken,
profile,
});
passport.use(new FacebookTokenStrategy({
clientID: 'your-facebook-client-id',
clientSecret: 'your-facebook-client-secret'
}, FacebookTokenStrategyCallback));
// GOOGLE STRATEGY
const GoogleTokenStrategyCallback = (accessToken, refreshToken, profile, done) => done(null, {
accessToken,
refreshToken,
profile,
});
passport.use(new GoogleTokenStrategy({
clientID: 'your-google-client-id',
clientSecret: 'your-google-client-secret'
}, GoogleTokenStrategyCallback));
// authenticate function
const authenticateFacebook = (req, res) => new Promise((resolve, reject) => {
passport.authenticate('facebook-token', { session: false }, (err, data, info) => {
if (err) reject(err);
resolve({ data, info });
})(req, res);
});
const authenticateGoogle = (req, res) => new Promise((resolve, reject) => {
passport.authenticate('google-token', { session: false }, (err, data, info) => {
if (err) reject(err);
resolve({ data, info });
})(req, res);
});
module.exports = { authenticateFacebook, authenticateGoogle };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment