microauth-github

May 24, 2017 ยท View on GitHub

Github oauth for micro

Build Status XO code style Greenkeeper badge

Add github authentication to your micro in few lines of code. This module is a part of microauth collection.

Installation

npm install --save microauth-github
# or
yarn add microauth-github

Usage

app.js

const { send } = require('micro');
const microAuthGithub = require('microauth-github');

const options = {
  clientId: 'CLIENT_ID',
  clientSecret: 'CLIENT_SECRET',
  callbackUrl: 'http://localhost:3000/auth/github/callback',
  path: '/auth/github',
  scope: 'user'
};

const githubAuth = microAuthGithub(options);

// third `auth` argument will provide error or result of authentication
// so it will { err: errorObject } or { result: {
//  provider: 'github',
//  accessToken: 'blahblah',
//  info: userInfo
// }}
module.exports = githubAuth(async (req, res, auth) => {

  if (!auth) {
    return send(res, 404, 'Not Found');
  }

  if (auth.err) {
    // Error handler
    return send(res, 403, 'Forbidden');
  }

  return `Hello ${auth.result.info.login}`;

});

Run:

micro app.js

Now visit http://localhost:3000/auth/github

Alternatives

Also you can see micro-github. This is ready for deploy microservice from @mxstbr

Author

Dmitry Pavlovsky