Skip to content

Instantly share code, notes, and snippets.

@supertowers
Created November 10, 2012 20:02
Show Gist options
  • Save supertowers/4052297 to your computer and use it in GitHub Desktop.
Save supertowers/4052297 to your computer and use it in GitHub Desktop.
Oauth example for node js
var express = require('express');
var app = express();
app.use( express.cookieParser() );
app.use( express.session( { secret: 'blahblahblah' } ) );
var OAuth= require('oauth').OAuth;
var oa = new OAuth(
"https://api.twitter.com/oauth/request_token",
"https://api.twitter.com/oauth/access_token",
"{{{ CONSUMER KEY }}}",
"{{{ CONSUMER SECRET }}}",
"1.0",
"http://localhost:8080/auth/twitter/callback",
"HMAC-SHA1"
);
app.get('/auth/twitter', function(req, res){
oa.getOAuthRequestToken(function(error, oauth_token, oauth_token_secret, results){
if (error) {
console.log(error);
res.send("yeah no. didn't work.")
}
else {
req.session.oauth = {};
req.session.oauth.token = oauth_token;
console.log('oauth.token: ' + req.session.oauth.token);
req.session.oauth.token_secret = oauth_token_secret;
console.log('oauth.token_secret: ' + req.session.oauth.token_secret);
res.redirect('https://twitter.com/oauth/authenticate?oauth_token='+oauth_token)
}
});
});
app.get('/auth/twitter/callback', function(req, res, next){
if (req.session.oauth) {
req.session.oauth.verifier = req.query.oauth_verifier;
var oauth = req.session.oauth;
oa.getOAuthAccessToken(oauth.token,oauth.token_secret,oauth.verifier,
function(error, oauth_access_token, oauth_access_token_secret, results){
if (error){
console.log(error);
res.send("yeah something broke.");
} else {
req.session.oauth.access_token = oauth_access_token;
req.session.oauth.access_token_secret = oauth_access_token_secret;
console.log(results);
res.send("worked. nice one.");
}
}
);
} else {
next(new Error("you're not supposed to be here."))
}
});
app.listen(8080);
console.log('Listening on port 8080');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment