Created
November 15, 2016 12:48
-
-
Save navdeepsingh/46fe7061cd5e9a7eb1d243f9a07892d6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'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