1.1.0 • Published 10 years ago

github-oauth-prompt v1.1.0

Weekly downloads
6
License
-
Repository
github
Last release
10 years ago

github-oauth-prompt Build Status Coverage Status

Gitter(https://badges.gitter.im/Join Chat.svg)

Easy creation of GitHub OAuth tokens.

Two-factor authentication is fully supported.

Getting Started

Install the module with: npm install github-oauth-prompt

var oauth = require('github-oauth-prompt');
oauth({name: 'my-token'}, function (err, token) {
    // Now you have a token.
});

Documentation

(Coming soon)

See Examples

Examples

In all examples below, callback is a function accepting two parameters: error and response.

function callback (err, res) {
    console.log('Token: ' + res);
}

Example 1

// Prompt for username, password, two-factor auth code if required,
// and return to the callback a GitHub token with basic scope.
oauth({
    name: 'moonrise-kingdom'
}, callback);

moonrise-kingdom demo gif

Example 2

// Prompt for a token for read/write access to all repositories
// and organisations and write access to Gists.
// More scopes: https://developer.github.com/v3/oauth/#scopes
oauth({
    name: 'rushmore',
    scopes: ['repo', 'gist']
}, callback);

rushmore demo gif

See that the token exists.

rushmore token in list

When called again, the existing token is returned.

rushmore demo existing gif

Example 3

// Set prompt messages.
oauth({
    name: 'the-life-aquatic',
    prompt: {
        username: 'Enter username:',
        password: 'Enter password:',
        code: 'Enter two-factor authorisation code'
    }
}, callback);

the-life-aquatic demo gif

Example 4

// Use own prompt. Must deal with two-factor authentication.
// Ask for username and password and store in an object. For this example, and
// to avoid getting bogged down in callback-hell, we have them already available.
var auth = {
    username: 'Margot',
    password: 'RichieLovesMe'
};
// Setup a function to call oauth with a code.
function getToken (code) {
    // Get a token with a two-factor authentication code.
    var authOptions = {
        name: 'the-royal-tenenbaums'
        username: auth.username,
        password: auth.password,
    };
    if (code) {
        authOptions.code = code;
    }
    oauth(authOptions, function (err, token) {
        console.log(token);
    });
}
// Test to see if a code is required for a given username and password.
oauth.requiresCode(auth, function (err, hasTwoFactorAuth) {
    if (!hasTwoFactorAuth) {
        // No need for a code.
        getToken();
    } else {
        // You need to get a two-factor authentication code from
        // the user.
        myCodePrompt(function (err, code) {
            getToken(code);
        });
    }
});

Contributing

In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.

# Requirements
npm install -g grunt-cli
# Dev
npm install && grunt

Release History

  • v1.0.1 The Royal Tenenbaums: "Anybody interested in grabbing a couple of burgers and hittin' the cemetery?"
  • v1.0.0 The Royal Tenenbaums
  • v0.2.2 Rushmore: "What's the secret, Max?"
  • v0.2.1 Rushmore: "I saved Latin. What did you ever do?"
  • v0.2.0 Rushmore
  • v0.1.3 Bottle Rocket: "So, did you enjoy your first visit to the nut house?
  • v0.1.2 Bottle Rocket: "Tell Anthony I love him."
  • v0.1.1 Bottle Rocket: "Which part of Mexico are you from?"
  • v0.1.0 Bottle Rocket

License

Copyright (c) 2014 Henry Blyth. Licensed under the MIT license.

1.1.0

10 years ago

1.0.1

11 years ago

1.0.0

11 years ago

0.2.2

11 years ago

0.2.1

11 years ago

0.2.0

11 years ago

0.1.3

11 years ago

0.1.2

11 years ago

0.1.1

11 years ago

0.1.0

11 years ago