app.get('/sessions/connect', (request, response) => { consumer.getOAuthRequestToken((error, oauthToken, oauthTokenSecret) => { if (error) { response.send('Error getting OAuth access token'); } else { request.session.oauthRequestToken = oauthToken; request.session.oauthRequestTokenSecret = oauthTokenSecret; response.redirect(`${oauthUrl}authorize?oauth_token=${request.session.oauthRequestToken}`); } } ); });
oauth.getOAuthRequestToken({},function(err, oauth_token, oauth_token_secret, results ){ if (!err) { self.requesttoken = {token: oauth_token, secret: oauth_token_secret, verifier: verifier}; self.setGearCacheValue('requesttoken',self.requesttoken); if (typeof(callback)=='function') callback(1); } else if (typeof(callback)=='function') callback(0); });
app.post( '/rest', function(req, res) { var url = service.json + req.body.route; oauth.post( url , req.session.access.token , req.session.access.secret , delete req.body.route && req.body , false , function(error, response, result) { res.set( 'Content-Type', 'application/json' ); res.send( response ); } ); });
app.get( '/rest', function(req, res) { var route = req.query.route; var args = query.stringify( delete req.query.route && req.query ); var url = service.json + route + ( args ? '?' + args : '' ); oauth.get( url , req.session.access.token , req.session.access.secret , function(error, response, result) { res.set( 'Content-Type', 'application/json' ); res.send( response ); } ); });
async function getTwitterUserProfileWithOAuth1 (username = 'twitterdev') { var oauth = new OAuth.OAuth( 'https://api.twitter.com/oauth/request_token', 'https://api.twitter.com/oauth/access_token', process.env.TWITTER_CONSUMER_KEY, process.env.TWITTER_CONSUMER_SECRET, '1.0A', null, 'HMAC-SHA1' ) const get = promisify(oauth.get.bind(oauth)) const body = await get( `https://api.twitter.com/1.1/users/show.json?screen_name=${username}`, process.env.TWITTER_ACCESS_KEY, process.env.TWITTER_ACCESS_TOKEN_SECRET ) return JSON.parse(body) }
app.get( '/callback', function(req, res) { oauth.getOAuthAccessToken( req.session.token, req.session.secret, req.query.oauth_verifier, function(error, token, secret, results) { if ( error ) { res.send( 'error' ); return; } req.session.access.token = token; req.session.access.secret = secret; console.log( token, secret ); res.redirect( 'http://localhost:3000' ); } ); });
oauth.getOAuthAccessToken(this.requesttoken.token, this.requesttoken.secret,this.requesttoken.verifier, function (err, oauth_token, oauth_token_secret, results){ if (!err) { var hkey = oauth_token_secret+'&'+self.gearsecret; var revokecode = crypto.createHmac('sha1', hkey).update(oauth_token).digest('base64').replace(/\//g,'_'); self.accesstoken = {token:oauth_token, secret: oauth_token_secret, appkey: results.appkey, endpoint: results.endpoint, revokecode: revokecode}; if (results.flag != 'S') { self.setGearCacheValue('accesstoken',self.accesstoken); self.setGearCacheValue('requesttoken',null); } else { self.clearGearCache(); } if (typeof(callback)=='function') callback(2); } else { switch (err.statusCode) { case 401: // not authorized yet if (typeof(callback)=='function') callback(1); break; case 500: // eg. 500 request token not found default : self.emit('rejected','Request token rejected'); if (typeof(callback)=='function') callback(1); break; } } });
getOauth().post( this.endPoint + api.url, this.creds.userToken, this.creds.userSecret, postData, function(e, data, res) { try { if (e) { console.log('oauth.error', e); console.log('Sellsy.api OAUTH ERROR', method, params); return reject(e); } if (data.error) { console.log('oauth.data.error', data.error); console.log('Sellsy.api ERROR', method, params); return reject(data.error); } //console.log('Sellsy.api', method, params, data); resolve(JSON.parse(data)); } catch(err) { reject(err); } } );
app.get('/sessions/callback', (request, response) => { consumer.getOAuthAccessToken( request.session.oauthRequestToken, request.session.oauthRequestTokenSecret, request.query.oauth_verifier, (error, oauthAccessToken, oauthAccessTokenSecret) => { if (error) { response.send("error getting access token"); } else { request.session.oauthAccessToken = oauthAccessToken; request.session.oauthAccessTokenSecret = oauthAccessTokenSecret; consumer.get(`${config.jiraUrl}/rest/auth/latest/session`, request.session.oauthAccessToken, request.session.oauthAccessTokenSecret, function (error, data) { console.log('response', data, error); data = JSON.parse(data); response.send(`Authorized username: ${data["name"]}`); }, "application/json" ); } } ); });
app.get( '/auth', function(req, res) { oauth.getOAuthRequestToken(function(error, token, secret, results) { if ( error ) { res.send( 'error' ); return; } req.session.access = {}; req.session.token = token; req.session.secret = secret; res.redirect( `${service.url}/oauth1/authorize/?oauth_token=${token}` ); }); });