Facebook oauth for micro
Add Facebook authentication to your micro service as easy as a flick of your fingers. This module is a part of microauth collection.
npm install --save microauth-facebook
# or
yarn add microauth-facebook
app.js
const { send } = require('micro');
const microAuthFacebook = require('microauth-facebook');
const options = {
appId: 'APP_ID',
appSecret: 'APP_SECRET',
callbackUrl: 'http://localhost:3000/auth/facebook/callback',
path: '/auth/facebook',
fields: 'name,email,cover,first_name', // Check fields list here: https://developers.facebook.com/docs/graph-api/reference/v2.11/user
scope: 'public_profile,email' // Check permissions list here: https://developers.facebook.com/docs/facebook-login/permissions
};
const facebookAuth = microAuthFacebook(options);
// third `auth` argument will provide error or result of authentication
// so it will { err: errorObject} or { result: {
// provider: 'facebook',
// accessToken: 'blahblah',
// info: userInfo
// }}
module.exports = facebookAuth(async (req, res, auth) => {
if (!auth) {
return send(res, 404, 'Not Found');
}
if (auth.err) {
// Error handler
console.error(auth.err);
return send(res, 403, 'Forbidden');
}
return `Hello ${auth.result.info.first_name}`;
});
Run:
micro app.js
Now visit http://localhost:3000/auth/facebook