Skip to content

Instantly share code, notes, and snippets.

@navdeepsingh
Created November 15, 2016 12:48
Show Gist options
  • Save navdeepsingh/46fe7061cd5e9a7eb1d243f9a07892d6 to your computer and use it in GitHub Desktop.
Save navdeepsingh/46fe7061cd5e9a7eb1d243f9a07892d6 to your computer and use it in GitHub Desktop.
'use strict'
const Config = use('Config')
var twitterAPI = require('node-twitter-api')
const promisify = require("es6-promisify")
const twitter = new twitterAPI({
consumerKey: Config.get('auth.twitterAuth.consumerKey'),
consumerSecret: Config.get('auth.twitterAuth.consumerSecret'),
callback: Config.get('auth.twitterAuth.callbackURL')
});
class TwitterController {
* connect (request, response) {
const getToken = promisify( twitter.getRequestToken.bind( twitter ), {multiArgs: true} )
const sessionPut = promisify( request.session.put.bind( request.session ) );
return getToken().then(function (result) {
return {
'requestToken' : result[0],
'requestTokenSecret' : result[1]
}
})
.then( function( tokens ) {
return sessionPut( tokens ).then( () => tokens ); //request.session.put(tokens)
})
.then( function( tokens ) {
console.log( tokens )
return response.send( 'https://twitter.com/oauth/authenticate?oauth_token=' + tokens.requestToken )
})
.catch( function(e) {
console.log(e)
});
}
* callback (request, response) {
const requestToken = yield request.session.get('requestToken')
const requestTokenSecret = yield request.session.get('requestTokenSecret')
const oauth_verifier = request.param('oauth_verifier')
console.log('requestToken : ' + requestToken)
twitter.getAccessToken(requestToken, requestTokenSecret, oauth_verifier, function(error, accessToken, accessTokenSecret, results) {
if (error) {
console.log(error);
} else {
console.log(results)
//store accessToken and accessTokenSecret somewhere (associated to the user)
//Step 4: Verify Credentials belongs here
}
return
});
}
}
module.exports = TwitterController
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment