Skip to content

Instantly share code, notes, and snippets.

@mikejavier
Forked from joshj/server.js
Created August 3, 2018 16:13
Show Gist options
  • Save mikejavier/39a2fa988dd24d99e8e8637fb406e13f to your computer and use it in GitHub Desktop.
Save mikejavier/39a2fa988dd24d99e8e8637fb406e13f to your computer and use it in GitHub Desktop.

Revisions

  1. joshj revised this gist Feb 28, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion server.js
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,7 @@
    make
    make install
    Install Dependancies:
    Install Dependencies:
    npm install express
    npm install oauth
  2. joshj revised this gist Feb 28, 2012. 1 changed file with 67 additions and 34 deletions.
    101 changes: 67 additions & 34 deletions server.js
    Original file line number Diff line number Diff line change
    @@ -1,39 +1,61 @@
    /*
    Node.js, express, oauth example using Twitters API
    Install Node.js:
    curl -0 http://nodejs.org/dist/v0.6.11/node-v0.6.11.tar.gz
    tar -zxf node-v0.6.11.tar.gz
    cd node-v0.6.11
    ./configure
    make
    make install
    Install Dependancies:
    npm install express
    npm install oauth
    Create App File:
    Save this file to app.js
    Start Server:
    node app.js
    Navigate to the page:
    Local host: http://127.0.0.1:8080
    Remote host: http://yourserver.com:8080
    */

    var express = require('express');
    var sys = require('sys');
    var util = require('util');
    var oauth = require('oauth');

    var app = express.createServer();

    var _twitterConsumerKey = "YOURTWITTERCONSUMERKEY";
    var _twitterConsumerSecret = "YOURTWITTERCONSUMERSECRET";
    // Get your credentials here: https://dev.twitter.com/apps
    var _twitterConsumerKey = "twitterConsumerKey";
    var _twitterConsumerSecret = "twitterConsumerSecret";

    function consumer() {
    return new oauth.OAuth(
    var consumer = new oauth.OAuth(
    "https://twitter.com/oauth/request_token", "https://twitter.com/oauth/access_token",
    _twitterConsumerKey, _twitterConsumerSecret, "1.0A", "http://badgestar.com/sessions/callback", "HMAC-SHA1");
    }
    _twitterConsumerKey, _twitterConsumerSecret, "1.0A", "http://127.0.0.1:8080/sessions/callback", "HMAC-SHA1");

    app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
    app.use(express.logger());
    app.use(express.cookieParser());
    app.use(express.session());
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
    app.use(express.logger());
    app.use(express.cookieParser());
    app.use(express.session({ secret: "very secret" }));
    });

    app.dynamicHelpers({
    session: function(req, res){
    return req.session;
    }
    });

    app.get('/', function(req, res){
    res.send('Hello World');
    session: function(req, res){
    return req.session;
    }
    });

    app.get('/sessions/connect', function(req, res){
    consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
    consumer.getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
    if (error) {
    res.send("Error getting OAuth request token : " + sys.inspect(error), 500);
    res.send("Error getting OAuth request token : " + util.inspect(error), 500);
    } else {
    req.session.oauthRequestToken = oauthToken;
    req.session.oauthRequestTokenSecret = oauthTokenSecret;
    @@ -43,26 +65,37 @@ app.get('/sessions/connect', function(req, res){
    });

    app.get('/sessions/callback', function(req, res){
    sys.puts(">>"+req.session.oauthRequestToken);
    sys.puts(">>"+req.session.oauthRequestTokenSecret);
    sys.puts(">>"+req.query.oauth_verifier);
    consumer().getOAuthAccessToken(req.session.oauthRequestToken, req.session.oauthRequestTokenSecret, req.query.oauth_verifier, function(error, oauthAccessToken, oauthAccessTokenSecret, results) {
    util.puts(">>"+req.session.oauthRequestToken);
    util.puts(">>"+req.session.oauthRequestTokenSecret);
    util.puts(">>"+req.query.oauth_verifier);
    consumer.getOAuthAccessToken(req.session.oauthRequestToken, req.session.oauthRequestTokenSecret, req.query.oauth_verifier, function(error, oauthAccessToken, oauthAccessTokenSecret, results) {
    if (error) {
    res.send("Error getting OAuth access token : " + sys.inspect(error) + "["+oauthAccessToken+"]"+ "["+oauthAccessTokenSecret+"]"+ "["+sys.inspect(results)+"]", 500);
    res.send("Error getting OAuth access token : " + util.inspect(error) + "["+oauthAccessToken+"]"+ "["+oauthAccessTokenSecret+"]"+ "["+util.inspect(results)+"]", 500);
    } else {
    req.session.oauthAccessToken = oauthAccessToken;
    req.session.oauthAccessTokenSecret = oauthAccessTokenSecret;
    // Right here is where we would write out some nice user stuff
    consumer().get("http://twitter.com/account/verify_credentials.json", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {
    if (error) {
    res.send("Error getting twitter screen name : " + sys.inspect(error), 500);
    } else {
    req.session.twitterScreenName = data["screen_name"];
    res.send('You are signed in: ' + req.session.twitterScreenName)
    }
    });

    res.redirect('/home');
    }
    });
    });

    app.get('/home', function(req, res){
    consumer.get("http://twitter.com/account/verify_credentials.json", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {
    if (error) {
    res.redirect('/sessions/connect');
    // res.send("Error getting twitter screen name : " + util.inspect(error), 500);
    } else {
    var parsedData = JSON.parse(data);

    // req.session.twitterScreenName = response.screen_name;
    res.send('You are signed in: ' + parsedData.screen_name);
    }
    });
    });

    app.get('*', function(req, res){
    res.redirect('/home');
    });

    app.listen(8080);
  3. joshj revised this gist Feb 28, 2012. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion server.js
    Original file line number Diff line number Diff line change
    @@ -65,4 +65,4 @@ app.get('/sessions/callback', function(req, res){
    });
    });

    app.listen(parseInt(process.env.PORT || 80));
    app.listen(8080);
  4. joshj revised this gist Feb 28, 2012. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions server.js
    Original file line number Diff line number Diff line change
    @@ -16,7 +16,7 @@ function consumer() {
    app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
    app.use(express.logger());
    app.use(express.cookieDecoder());
    app.use(express.cookieParser());
    app.use(express.session());
    });

    @@ -53,7 +53,7 @@ app.get('/sessions/callback', function(req, res){
    req.session.oauthAccessToken = oauthAccessToken;
    req.session.oauthAccessTokenSecret = oauthAccessTokenSecret;
    // Right here is where we would write out some nice user stuff
    consumer.get("http://twitter.com/account/verify_credentials.json", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {
    consumer().get("http://twitter.com/account/verify_credentials.json", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {
    if (error) {
    res.send("Error getting twitter screen name : " + sys.inspect(error), 500);
    } else {
  5. jeffrafter created this gist Aug 28, 2010.
    68 changes: 68 additions & 0 deletions server.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,68 @@
    var express = require('express');
    var sys = require('sys');
    var oauth = require('oauth');

    var app = express.createServer();

    var _twitterConsumerKey = "YOURTWITTERCONSUMERKEY";
    var _twitterConsumerSecret = "YOURTWITTERCONSUMERSECRET";

    function consumer() {
    return new oauth.OAuth(
    "https://twitter.com/oauth/request_token", "https://twitter.com/oauth/access_token",
    _twitterConsumerKey, _twitterConsumerSecret, "1.0A", "http://badgestar.com/sessions/callback", "HMAC-SHA1");
    }

    app.configure('development', function(){
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
    app.use(express.logger());
    app.use(express.cookieDecoder());
    app.use(express.session());
    });

    app.dynamicHelpers({
    session: function(req, res){
    return req.session;
    }
    });

    app.get('/', function(req, res){
    res.send('Hello World');
    });

    app.get('/sessions/connect', function(req, res){
    consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
    if (error) {
    res.send("Error getting OAuth request token : " + sys.inspect(error), 500);
    } else {
    req.session.oauthRequestToken = oauthToken;
    req.session.oauthRequestTokenSecret = oauthTokenSecret;
    res.redirect("https://twitter.com/oauth/authorize?oauth_token="+req.session.oauthRequestToken);
    }
    });
    });

    app.get('/sessions/callback', function(req, res){
    sys.puts(">>"+req.session.oauthRequestToken);
    sys.puts(">>"+req.session.oauthRequestTokenSecret);
    sys.puts(">>"+req.query.oauth_verifier);
    consumer().getOAuthAccessToken(req.session.oauthRequestToken, req.session.oauthRequestTokenSecret, req.query.oauth_verifier, function(error, oauthAccessToken, oauthAccessTokenSecret, results) {
    if (error) {
    res.send("Error getting OAuth access token : " + sys.inspect(error) + "["+oauthAccessToken+"]"+ "["+oauthAccessTokenSecret+"]"+ "["+sys.inspect(results)+"]", 500);
    } else {
    req.session.oauthAccessToken = oauthAccessToken;
    req.session.oauthAccessTokenSecret = oauthAccessTokenSecret;
    // Right here is where we would write out some nice user stuff
    consumer.get("http://twitter.com/account/verify_credentials.json", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {
    if (error) {
    res.send("Error getting twitter screen name : " + sys.inspect(error), 500);
    } else {
    req.session.twitterScreenName = data["screen_name"];
    res.send('You are signed in: ' + req.session.twitterScreenName)
    }
    });
    }
    });
    });

    app.listen(parseInt(process.env.PORT || 80));