خرید بک لینک

Vote count: 0

I am using node-twitter-api module in node.js. In OAuth Call back session is getting lost.

`router.get('/p/twitterLogin',   handlers.twitterLogin);
router.get('/p/twitter_auth',   handlers.twitterAuth);

exports.twitterLogin = utils.wrapReqHandler(function*(req, res){
    let twitter = new twitterAPI({
        consumerKey: <appId>,
        consumerSecret: <Secrect Key>,
        callback: <callback url>
    });
    let twitterRequestTokenDetails = yield new Promise(function (resolve, reject) {
        twitter.getRequestToken(function (error, requestToken, requestTokenSecret, results) {
            if (error) {
                console.log( 'Twitter : Error getting OAuth request token :' + error);
                resolve()
            } else {
                resolve({ 'token': requestToken, 'secret': requestTokenSecret, 'results': results });
            }
        });
    });

    if (twitterRequestTokenDetails) {
        req.session.twReqToken = twitterRequestTokenDetails.token;
        req.session.twReqTokenSecret = twitterRequestTokenDetails.secret;
        req.session.dest_url = req.query.dest_url;
        let url = 'https://twitter.com/oauth/authenticate?oauth_token=' + twitterRequestTokenDetails.token;
        res.redirect(302, url);
        res.end();
    }else{
        console.log( "twitterLogin : Could not find social auth module details in session.");
    }
});`

After authentication i am doing OAuth call. In the call back i am seeing the session is different due to that session values are getting lost.

    exports.twitterAuth = utils.wrapReqHandler(function* (req, res) {
    logger.debug("Twitter twitterAuth   :::: " + JSON.stringify(req.session));
    if (req.session.twReqToken && req.session.twReqTokenSecret) {
        let twitter = new twitterAPI({
            consumerKey: req.session.socialAuthModule.twitter.appId,
            consumerSecret: req.session.socialAuthModule.twitter.appSecret,
            callback: utils.resolveURL(req, TWITTER_CALLBACK_URL)
        });


        let twitterTokenDetails = yield new Promise(function (resolve, reject) {
            twitter.getAccessToken(req.session.twReqToken, req.session.twReqTokenSecret, req.query.oauth_verifier, function (error, accessToken, accessTokenSecret, results) {
                if (error) {
                    console.log('Twitter : Failure : twitterAuthenticated :' + error);
                    resolve();
                } else {
                    resolve({ 'token': accessToken, 'secret': accessTokenSecret });
                }
            });
        });

        let twitterUserData = yield new Promise(function (resolve, reject) {
            twitter.verifyCredentials(twitterTokenDetails.token, twitterTokenDetails.secret, function (error, data, response) {
                if (error) {
                    console.log("Twitter :: something was wrong with either accessToken or accessTokenSecret ");
                    resolve();
                } else {
                    resolve(data);
                }
            });
        }); 

    }else{
        console.log( "twitterAuth : Could not find details in session.");
    }

});

Let me know how to solve this issue.

asked 46 secs ago

- - , .
.

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 22 تير 1395 ساعت: 16:55

صفحه بندی