github-token
Login with GitHub and retrieve an access token
Last updated 7 years ago by phated .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install github-token 
SYNC missed versions from official npm registry.

github-token

Login with GitHub and retrieve an access token

Usage

configuration

Configuration can be done with a config object or with environment variables

// config object
var githubToken = require('github-token')({
  githubClient: 'YOUR_CLIENT_KEY',
  githubSecret: 'YOUR_GITHUB_SECRET',
  baseURL: 'http://localhost',
  callbackURI: '/callback',
  scope: 'user' // optional, default scope is set to user
});

// environment variables
var githubToken = require('github-token')();

Environment variables are used if a config object isn't passed, and include

  • GITHUB_CLIENT
  • GITHUB_SECRET
  • GITHUB_BASE_URL
  • GITHUB_CALLBACK_URI
  • GITHUB_SCOPE

login

login is passed the request and response objects, and redirects to GitHub OAuth login

require('http').createServer(function(req, res){
  if(req.url.match(/login/)){
    return githubToken.login(req, res);
  }
}).listen(80);

callback

callback returns a promise or takes a callback

// promise
require('http').createServer(function(req, res){
  if(req.url.match(/callback/)){
    return githubToken.callback(req, res)
      .then(function(token){
        req.session.token = token;
      });
  }
}).listen(80);

// callback
require('http').createServer(function(req, res){
  if(req.url.match(/callback/)){
    return githubToken.callback(req, res, function(err, token){
      req.session.token = token;
    });
  }
}).listen(80);

What about github-oauth

I took a lot of inspiration from github-oauth, but didn't like the evented model. Especially, when the config is done globally to an app or you need to access the request again.

I removed the loginURI option, because there is no route sugar, but all other options are the same.

Example:

var githubToken = require('github-token')({
  githubClient: process.env['GITHUB_CLIENT'],
  githubSecret: process.env['GITHUB_SECRET'],
  baseURL: 'http://localhost',
  callbackURI: '/callback',
  scope: 'user' // optional, default scope is set to user
});

require('http').createServer(function(req, res){
  if(req.url.match(/login/)){
    return githubToken.login(req, res);
  }
  if(req.url.match(/callback/)){
    return githubToken.callback(req, res)
      .then(function(token){
        req.session.token = token;
      });
  }
}).listen(80);

Current Tags

  • 0.1.1                                ...           latest (7 years ago)

3 Versions

  • 0.1.1                                ...           7 years ago
  • 0.1.0                                ...           7 years ago
  • 0.0.0                                ...           7 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 2
Dependencies (2)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |