PATH:
usr
/
local
/
lib
/
node_modules
/
bower
/
lib
/
commands
var Configstore = require('configstore'); var GitHub = require('github'); var Q = require('q'); var createError = require('../util/createError'); var defaultConfig = require('../config'); function login(logger, options, config) { var configstore = new Configstore('bower-github'); config = defaultConfig(config); var promise; options = options || {}; if (options.token) { promise = Q.resolve({ token: options.token }); } else { // This command requires interactive to be enabled if (!config.interactive) { logger.emit( 'error', createError('Login requires an interactive shell', 'ENOINT', { details: 'Note that you can manually force an interactive shell with --config.interactive' }) ); return; } var questions = [ { name: 'username', message: 'Username', type: 'input', default: configstore.get('username') }, { name: 'password', message: 'Password', type: 'password' } ]; var github = new GitHub({ version: '3.0.0' }); promise = Q.nfcall(logger.prompt.bind(logger), questions).then(function( answers ) { configstore.set('username', answers.username); github.authenticate({ type: 'basic', username: answers.username, password: answers.password }); return Q.ninvoke(github.authorization, 'create', { scopes: ['user', 'repo'], note: 'Bower command line client (' + new Date().toISOString() + ')' }); }); } return promise.then( function(result) { configstore.set('accessToken', result.token); logger.info( 'EAUTH', 'Logged in as ' + configstore.get('username'), {} ); return result; }, function(error) { var message; try { message = JSON.parse(error.message).message; } catch (e) { message = 'Authorization failed'; } var questions = [ { name: 'otpcode', message: 'Two-Factor Auth Code', type: 'input' } ]; if ( message === 'Must specify two-factor authentication OTP code.' ) { return Q.nfcall(logger.prompt.bind(logger), questions) .then(function(answers) { return Q.ninvoke(github.authorization, 'create', { scopes: ['user', 'repo'], note: 'Bower command line client (' + new Date().toISOString() + ')', headers: { 'X-GitHub-OTP': answers.otpcode } }); }) .then( function(result) { configstore.set('accessToken', result.token); logger.info( 'EAUTH', 'Logged in as ' + configstore.get('username'), {} ); return result; }, function() { logger.emit('error', createError(message, 'EAUTH')); } ); } else { logger.emit('error', createError(message, 'EAUTH')); } } ); } // ------------------- login.readOptions = function(argv) { var cli = require('../util/cli'); var options = cli.readOptions( { token: { type: String, shorthand: 't' } }, argv ); delete options.argv; return [options]; }; module.exports = login;
[-] home.js
[edit]
[-] lookup.js
[edit]
[+]
..
[+]
cache
[-] link.js
[edit]
[-] install.js
[edit]
[-] login.js
[edit]
[-] info.js
[edit]
[-] uninstall.js
[edit]
[-] init.js
[edit]
[-] prune.js
[edit]
[-] search.js
[edit]
[-] list.js
[edit]
[-] index.js
[edit]
[-] update.js
[edit]
[-] help.js
[edit]
[-] unregister.js
[edit]
[-] register.js
[edit]
[-] version.js
[edit]