ページ

2010-12-25

HTTP と WebSocket でセッションを共有する

こんにちは、 nodejs.jp@masahirohです。 JavaScript Advent Calendar の最終日です。クリスマスだけど空気を読まずに Node.js の地味な話をします。ごめんなさい。

さて、 Node.js では Socket.IO を使えば、 WebSocket を使ったアプリケーションを割と簡単に作れるわけですが、これを Web フレームワークと一緒に使う場合、どうやってセッションを共有したらいいんだろう?とふと思いました。ユーザ名とパスワードをメッセージにのせたらいいんですかね? いや、セッション ID をメッセージにのせればいいのかな? うーん・・と思いながら Github をうろうろしていたら SessionWebSocket というアプリケーションを見つけました。セッション管理機能を追加する方法が結構参考になったので、コードリーディングをします、の予定だったのですが、動きがおかしかったので、一部書き直しつつ、コードリーディングします。説明の都合上、元のコメントは残していません。


解説に使ったソースコードは ここ の ma-read ブランチにあります。


では、解説していきます。まず、おおまかに言うと、セッション管理の仕組みは次のようになっています。


  1. ユーザが最初にページを開いたときに、クライアントは XHR でセッションのトークンを要求します。
  2. サーバはそのトークンをキーとしてセッションオブジェクトを管理しています。クライアントからの要求に応えて、トークンを返します。
  3. トークンを受け取ったら、 WebSocket のコネクションを開いて、そのトークンを送信します。
  4. WebSocket サーバはトークンを受け取ったら、管理しているセッションの有効期限をチェックし、有効ならセキュアなセッションとみなします。

server.js

では、サーバ側のコードから見ていきます。

依存しているモジュールをインポートしています。インポートしているのは、 Connect, Socket.IO, SessionWebSocket です。
var connect = require("connect");
var io = require("socket.io");
var sws = require("../sws.js")();
まずは Connect で Web サーバをつくります。 Connect は Web アプリケーション用のミドルウェアフレームワークです。決められたインターフェースに従ってつくられたアプリケーションを pluggable なミドルウェアとして扱うことができます。

createServer の引数に渡しているのがミドルウェアです。
var server = connect.createServer(
HTTP のセッションを管理しています。
  connect.cookieDecoder(),
  connect.session(),
今回の主役のひとり。セッションのトークンを発行します。
  sws.http,
これは静的ファイルを扱います。
  connect.staticProvider(__dirname+"/static")
);
サーバをポート 8000 番で起動します。
server.listen(8000);
次に、 WebSocket のサーバを準備します。

さきほどの Web サーバが WebSocket を扱えるようにしてやります。
var socket = io.listen(server);
イベントハンドラを設定します。引数に渡している sws.ws がもうひとりの主役です。 WebSocket 側のセッションを管理しています。こんなふうにコールバックにコールバックを渡すあたりがたまらないですね。
socket.on('connection', sws.ws(function(client) {
認証済みの場合のイベントハンドラです。セッション ID を出力してみます。
  client.on("secure", function() {
    console.log("SECURE");
    console.log(client.session.req.sessionID);
  });
認証が済んでいない場合のイベントハンドラです。
  client.on("insecure", function() {
    console.log("INSECURE ACCESS");
  });
メッセージ受信時のイベントハンドラです。
  client.on("message", function(msg) {
    client.send(msg);
    console.log("MSG:"+msg);
  });
}));

sws.js

var util = require('util');
では、いよいよセッション管理のミドルウェアについて見ていきます。

関数を exports にセットしています。先ほどアプリケーション側で require したときに呼んでいました。引数からオプションを受け取るために関数にしていたわけですね。
module.exports = function verifier(options)
{
デフォルトの設定です。セッションの生存期間 (ttl = time to live) を設定しています。
  var defaults = {
    ttl: 30*1000 // 30 秒
  };
引数でもらったオプションを反映させています。
  for (var k in options) {
    defaults[k] = options[k];
  }
複数のセッションを扱うためのオブジェクトです。
  var session_jar = {};
この関数は、セッションのトークンを発行するミドルウェアと、 WebSocket 用のセッション管理の関数をプロパティにもつオブジェクトを返します。
  return {
先ほど createServer に渡していたミドルウェアです。 リクエストオブジェクト、レスポンスオブジェクト、next という関数を引数にとる、というのが決められたインターフェースです。
    http:function give_token(req, res, next) {
リクエストのヘッダを参照し、 'x-access-request-token' フィールドが 'simple' だったらトークンを生成します。
      if (req.headers["x-access-request-token"]) {
        if (req.headers["x-access-request-token"].toLowerCase()==="simple") {
          var token = Math.random();
ユニークな値をとれるまで繰り返します。
          while (session_jar[token]) {
            token = Math.random();
          }
トークンをキーとしてセッションデータと発行した日時を保存しています。 req.session は connect.session が生成したものです。
          var tmp = Date.now();
          session_jar[token] = {
            session: req.session,
            date: tmp,
            id: req.sessionID
          };
レスポンスを生成します。トークンと発行日時を JSON で返しています。
          res.writeHead(200);
          res.end('{"x-access-token": "'+token+';'+tmp+'"}');
          return;
        }
      }
'x-access-request-token' フィールドがリクエストのヘッダにない場合は、このミドルウェアはやることがないので、 next を呼んで次のミドルウェアに処理をまかせます。
      if (next) {
        next();
      }
    }
こちらは WebSocket のセッションを管理する関数です。
    , ws: function attach_client(cb) {

      return function route_client(client) {
トークンの有効性をチェックする関数を定義します。
        function verify(token) {
          var tmp = session_jar[token];
セッションの期限切れをチェックしています。認証されたら削除しているので、トークンは1回だけしか使わない仕様になっています。
          if (tmp && tmp.date > Date.now() - defaults.ttl) {
            var session = tmp;
            delete session_jar[token];
            return session;
          }
          return false;
        }
'message' に対するイベントハンドラを設定します。トークンをチェックしています。この関数を実行するのは最初にメッセージを受信したときだけです。
        client.once('message', function first_verify(msg) {
メッセージで渡されたトークンが有効な場合は、クライアントにセッションデータを設定して、'secure' イベントをクライアントに対して発行します。
          var session = verify(msg) || false;
          if (session) {
            client._session = session;
            client.session = session.session;
            client.emit("secure");
セッションが有効だったので、 client.on を元に戻して、退避しておいた 'message' に対するイベントハンドラをバインドします。退避する処理は下の方にでてきます。
            client.on = oldon;
            for (var i = 0, l = onmsgs.length; i < l; i++) {
              client.on('message', onmsgs[i]);
            }
          }
セッションデータがないので 'insecure' イベントをクライアントに対して発行します。
          else {
            client.emit("insecure");
          }
        });
'message' イベントに対するイベントハンドラは、セッションが有効かどうかのチェックが済んだあとから実行されるようにしたいので、 client.on を 'message' イベントのハンドラだけ退避するように書き換えます。
        var onmsgs = [];
        var oldon = client.on;
        client.on = function(name, fn) {
          if (name === "message") onmsgs[onmsgs.length] = fn;
          else oldon.apply(this, arguments);
        };
        
呼び出し元にクライアントを渡します。
        cb(client);
      };
    }
  };
};

client.js

次にクライアント側を見ていきます。

SessionWebSocket で、トークンのやりとりをしてから、 'message' に対するイベントハンドラをバインドします。
SessionWebSocket(function(socket){
 socket.on('message',function(msg){
  console.log("SWS:",msg);
  });
セッションが確立した場合、このメッセージは受信されます。
  setInterval(function() {
    socket.send('Succeed!');
  }, 1000);
});
セキュアでないコネクションを示すための例です。こちらで送信したメッセージは弾かれます。
var socket = new io.Socket()
socket.connect();
socket.send("OH NOES");

sws.js

次に クライアントサイドのモジュールのコードです。トークンを取得して、返ってきたらコネクションを張り直します。
function SessionWebSocket(cb) {
  var xhr = new XMLHttpRequest()
  xhr.open("GET","/?no-cache="+(new Date()+0));
トークンを取得するためのヘッダを設定します。
  xhr.setRequestHeader("x-access-request-token","simple");
レスポンスに対するコールバックを設定します。
  xhr.onreadystatechange = function xhrverify() {
受信完了
    if (xhr.readyState === 4) {
      var tmp;
      try {
トークンが返ってきていたら、新規に WebSocket の接続を開始します。
        if (tmp = JSON.parse(xhr.responseText)["x-access-token"]) {
          var socket = new io.Socket();
          cb(socket);
          socket.connect();
取得したトークンを送っています
          socket.send(tmp.split(";")[0]);
        }
      }
      catch(e) {
        throw new Error("XMLHttpResponse had non-json response, possible cache issue?")
      }
    }
  };
リクエストを送信します。
  xhr.send();
}




以上でおしまいです。個人的には Connect のミドルウェアとしてセッション管理を実装するあたりや、イベントハンドラを一旦避けるあたりの処理が面白かったです。改善の余地がちょこちょこあるので、手を入れていこうと思います。


* このドキュメントは docco をつかってコードから生成しました。

20 件のコメント:

  1. Flipkart is Offering Cashback Offers Flipkart AXIS Cashback Offer You will get upto 75% Discount

    Flipkart is Offering Cashback Offers Flipkart YES Cashback Offer You will get upto 75% Discount

    Flipkart is Offering Cashback Offers Flipkart Phonepe Cashback Offer You will get upto 75% Discount

    Flipkart is Offering Cashback Offers Flipkart Cashback Offer You will get upto 75% Discount

    Flipkart is one of the biggest world wide eCommerce Site flipkart cashback offersso

    Flipkart is one of the biggest world wide eCommerce Site Flipkart hdfc offersso

    返信削除
  2. flipkart is Offering Cashback Offers Flipkart hdfc cashback offers You will get upto 75% Discount

    Flipkart is Offering Cashback Offers Flipkart SBI Cashback Offer You will get upto 75% Discount

    Flipkart is Offering Cashback Offers Flipkart AXIS Cashback Offer You will get upto 75% Discount

    Flipkart is Offering Cashback Offers Flipkart YES Cashback Offer You will get upto 75% Discount

    Flipkart is one of the biggest world wide eCommerce Site so here you will getFlipkart big billion day offers

    Flipkart is one of the biggest world wide eCommerce Site so here you will getflipkart bank cashback offersso


    Flipkart cashback offers on mobiles,
    Flipkart cashback offers,
    Flipkart cashback coupons,
    Flipkart upcoming offers on mobiles,
    Flipkart HDFC cashback offers,
    Flipkart SBI cashback offers,
    Flipkart AXIS cashback offers,
    Flipkart Citibank cashback offers,
    Flipkart cashback on mobiles,
    Flipkart cashback offers today,
    Flipkart big billion day cashback offers,
    Flipkart big billion days cashback offers,
    big billion day cashback offers,
    Flipkart big billion days offers,
    flipkart cashback on mobiles,
    flipkart citibank offer,
    sbi credit card offers on flipkart today,
    flipkart upcoming offers on mobiles,
    hdfc credit card offers on flipkart,
    flipkart upcoming big billion day,
    flipkart upcoming sale,
    sbi credit card offers on mobiles,
    flipkart offers today,
    flipkart offers on mobiles,
    flipkart offers today mobile phones,
    flipkart cashback offers,
    flipkart cashback coupons,
    flipkart sale today offer,
    flipkart cashback offers today,
    cashback offers,
    flipkart cashback offer today

    返信削除

  3. Amazon cashback offers 2018Cashback Deals with sbi,hdfc,icici,axis banks,credit&debit card,
    Amazon Cashback Offers 2018 Upto 65% Cashback Deals, AMAZON CASHBACK OFFERS 2018, DISCOUNT COUPON OFFERS 2018, Amazon cashback offers with sbi hdfc icici axis banks credit&debit card offers more. amazon cashback offers2018,amazon india cashback,amazon offers on mobiles,amazon cashback2018,amazon offers 2018



    cashbackoffer amazon coupon code| amazon coupon promo code| amazon offer coupon code|
    amazon coupon code| amazon coupon promo code| amazon offer coupon code


    About Airport Parking,Accor HotelsAffordable Asia,Agoda,Air Asia Go,Akbar Travels,Amoma,Azores Getaways,Big Bus Tours,Booking,CarmelLimo,CatchThatBus,CheapAir,CheapTickets Singapore,Cleartrip,Ctrip English speaking,Etihad Airways,Expedia,Expedia India, Expedia Indonesia Hotels, Flights & Packages,Travel Coupons, Offers: Flights, Hotels, Bus Promo Codes

    CashBack Offers, Discount Coupons, Bank Offers & Promo Codes


    flipkart cashback offer,
    CashBack Offers, Discount Coupons


    Pepperfry, Mobikwik, Firstcry, Fab Hotels, Ebay, Aliexpress, Adidas, Healthkart, Pepperfry, Shoppers Stop, FlipKart, Amazon, Lurap, Giftalove, Reebok, SBI Card, CoolWinks, Housejoy, Shine, Jaypore, netmeds, FabAlley, Prettysecrets, FlowerAura, Clovia, Shopclues, Printvenue, Firstcry, Travelguru, Myntra, Zivame, Jabong, Ferns N Petals,Healthkart, Pepperfry, Shoppers Stop, FlipKart, Amazon


    CashBack Offers, Discount Coupons, Bank Offers & Promo Codes


    CashBack Offers, Discount Coupons, Bank Offers & Promo Codes

    CashBack Offers, Discount Coupons, Bank Offers & Promo Codes

    返信削除
  4. nice post.super article .iam follow your website.


    Flipkart CashBack Offers-SBI, HDFC, ICICI, Citibank Cards&Flipkart HDFC Cards Offers"
    flipkart bank offers,flipkart cash back coupons,flipkart offers 2018,flipkart coupons 2018,flipkart cashback offers 2018,flipkart cashback offers,flipkart cash back offers,flipkart cashback coupons,flipkart cashback,Flipkart Cashback Offers,Flipkart Bank Offers,Flipkart Deals 2018, flipkart upcoming offers on mobiles, hdfc credit card offers on flipkart 2018 flipkart sbi offer big billion day, flipkart hdfc offer, flipkart hdfc offer august 2018 sbi flipkart offer 2018 flipkart icici offer


    FLIPKART CITIBANK OFFER,FLIPKART ICICI OFFER,
    SBI CARD OFFERS ON FLIPKART,
    FLIPKART CASHBACK OFFER TODAY,FLIPKART CREDIT CARD OFFERS,
    ALL BANK CREDIT CARD OFFERS,HDFC CREDIT CARD OFFERS ON FLIPKART,
    AXIS BANK CREDIT CARD OFFERS ON FLIPKART,
    CITIBANK CREDIT CARD OFFERS ON FLIPKART,SBI FLIPKART OFFER



    Flipkart Cashback Offers||Flipkart Bank Offers||Flipkart Deals 2018||flipkart upcoming offers,"
    "Flipkart Cashback Offers || Flipkart Bank Offers || Flipkart Deals 2018 ||" "flipkart upcoming offers on mobiles, hdfc credit card offers on flipkart 2018, sbi credit card offers on flipkart today, flipkart hdfc offer terms and conditions, sbi flipkart offer 2018, flipkart cashback phonepe, flipkart hdfc offer august 2018, flipkart icici offer




    "cashback,vouchers,coupons,discounts,offers,deals,promo codes,&Cashback Offers"
    "cash back coupons "Coupons, Discounts & Offers on 1500+ Shopping Sites in India. Get Extra Cashback Everytime You Shop Online using Coupons of Amazon, Flipkart, Tata CLiQ, Nykaa etc."cashback, vouchers, coupons, discounts, offers, deals, promo codes,Coupons, Promo Codes & Cashback Offers



    Offersable - Cash Back Offers | Discount Coupons | Bank Offers | Promo Codes.
    Find best Discount Coupons, Cashback Offers, Hot Deals Bank Offers for all major e-commerce stores in the India

    返信削除
  5. Thanks for sharing, nice post! Post really provice useful information!

    Giaonhan247 chuyên dịch vụ ship hàng từ Mỹ về Việt Nam từ dịch vụ mua hàng mỹ online cùng với hướng dẫn cách tính thuế khi mua hàng trên amazon khi mua đồng hồ sale off trên amazon uy tín.

    返信削除
  6. flipkart sbi,
    flipkart sbi debit card emi,
    flipkart sbi,
    flipkart sbi offer,
    flipkart offer with sbi card,
    flipkart sbi credit card offers,
    flipkart sbi debit card offer,
    flipkart sbi debit card emi eligibility sms,
    sbi flipkart eligibility,
    flipkart sbi debit card emi eligibility check,
    flipkart sbi offer big billion day,
    flipkart sbi card,
    flipkart sbi emi debit card,
    flipkart debit card emi sbi sms,
    sbi woohoo flipkart gift card,
    flipkart sbi offer 2017,
    flipkart sbi offer 2018,
    flipkart sbi offer terms and conditions,
    flipkart debit card emi sbi mobile,
    flipkart offer for sbi debit card,
    flipkart emi with sbi debit card,
    flipkart coupons for sbi credit card,
    flipkart sbi debit card emi 2018,,
    flipkart emi through sbi debit card,
    flipkart debit card emi sbi in hindi,
    flipkart sbi debit card emi eligibility check sms,
    flipkart sbi emi offer,
    flipkart sbi terms and conditions,
    flipkart sbi offer september 2017,
    flipkart diwali sale sbi offer,
    flipkart sbi debit card,
    sbi flipkart link,
    flipkart sbi offer t&c,
    flipkart and sbi,
    flipkart and sbi card offer,
    flipkart and sbi debit card offer,
    flipkart mobile sbi card offer,
    flipkart sbi 10 cashback offer,
    flipkart sbi 10 offer,
    flipkart sbi card discount,
    flipkart sbi card offer big billion day,
    flipkart sbi card offer today,
    flipkart sbi discount,
    flipkart sbi instant discount,
    flipkart sbi offer big billion sale,
    flipkart sbi offer december 2017,
    flipkart sbi offer details,
    flipkart sbi offer july 2018,
    flipkart sbi offer today,
    sbi flipkart big billion offer,
    sbi po flipkart

    返信削除

  7. flipkart emi offers,
    flipkart mobile offers in emi,
    flipkart bajaj emi card offers,
    flipkart no cost emi offers,
    flipkart bajaj emi offer,
    flipkart laptop emi offer,
    flipkart emi offer on debit card,
    flipkart emi offer mobile,
    flipkart mobile offers no cost emi,
    bajaj emi offers in flipkart,
    flipkart offers emi on debit card,
    flipkart 0 emi offer,
    flipkart sbi emi offer,
    flipkart hdfc emi offer,
    icici flipkart emi offer,
    flipkart debit card emi,
    flipkart emi on debit card,
    flipkart emi with debit card,
    flipkart emi debit card,
    flipkart emi debit card sbi,
    flipkart sbi debit card emi,,
    flipkart emi sbi debit card,
    flipkart emi mobile,
    cardless emi flipkart,,
    flipkart bajaj emi,
    flipkart emi offer,
    flipkart emi bajaj finserv
    flipkart emi using debit card
    flipkart emi card,
    flipkart emi laptop,
    flipkart emi process,
    flipkart emi phone,
    flipkart no cost emi laptops,
    flipkart emi on debit card sbi,,
    flipkart emi system,
    flipkart emi credit card,
    flipkart emi debit card icici,
    flipkart emi rules,
    flipkart emi cancellation,
    flipkart 0 emi,
    flipkart emi on credit card,
    flipkart emi in debit card,
    flipkart zero emi,
    flipkart emi procedure,
    flipkart emi terms and conditions
    flipkart emi calculator,
    flipkart emi customer care number,
    flipkart emi bajaj finance,
    flipkart emi scheme,
    flipkart give emi on debit card,
    flipkart emi by debit card,
    flipkart emi icici debit card
    flipkart iphone 6 emi,
    flipkart emi offer mobile,
    flipkart no emi cost mobile,
    flipkart emi shopping
    flipkart no cost emi led tv,
    flipkart emi axis bank debit card,
    flipkart emi for mobile,
    flipkart emi with sbi debit card,
    flipkart debit card emi laptop,
    flipkart emi without debit card,

    返信削除

  8. Flipkart CashBack Offers,telugu bloggers ,telugu websites
    Flipkart CashBack Offers - SBI, HDFC, ICICI, Citibank Cards,flipkart sbi debit card emi,flipkart upcoming offers on mobiles,flipkart credit card,flipkart cashback phonepe,flipkart credit card generator,flipkart cashback offer phonepe,flipkart american express,india fake debit card generator,flipkart american express gift card,sbi credit card offers on flipkart today,sbi flipkart offer,sbi debit card offers cash back,sbi flipkart offer 2018,,telugu bloggers ,telugu websites


    Offers.Flipkart .
    flipkart bank offers,flipkart cash back coupons, flipkart offers,flipkart cashback offers ,flipkart cashback offers,flipkart cash back offers,flipkart cashback coupons,flipkart cashback,Flipkart Cashback Offers,Flipkart Bank Offers, flipkart upcoming offers on mobiles, flipkart hdfc offer, flipkart icici offer,sbi credit card offers on flipkart today,sbi flipkart offer, hdfc credit card offers on flipkart, flipkart upcoming offers on mobiles, flipkart offers


    flipkart today deal offer,flipkart todays deal,flipkart best offer today,flipkart cashback offer today,flipkart mobile app offers today,flipkart mobile deals today


    "Flipkart Cashback Offers || Flipkart Bank Offers || Flipkart Deals 2018 ||" "flipkart upcoming offers on mobiles, hdfc credit card offers on flipkart 2018, sbi credit card offers on flipkart today, flipkart hdfc offer terms and conditions, sbi flipkart offer 2018, flipkart cashback phonepe, flipkart hdfc offer august 2018, flipkart icici offers

    Flipkart CashBack Offers July 2018 - SBI, HDFC, ICICI, Citibank Cards,Cashback Offers Coupons,
    Today Special deals offers,
    Flipkart 2018 deals,
    Flipkart Today offers


    Flipkart CashBack Offers June 2018 - SBI, HDFC, ICICI, Citibank Cards

    返信削除
  9. Flipkart CashBack Offers July 2018 - SBI, HDFC, ICICI, Citibank Cards,Cashback Offers Coupons,
    Today Special deals offers,
    Flipkart 2018 deals,
    Flipkart Today offers


    Flipkart CashBack Offers June 2018 - SBI, HDFC, ICICI, Citibank Cards

    Best of Home Furnishing min 40% off:
    flipkart Mobile Accessories,flipkart Storage devices,flipkart Brands at best prices,flipkart Top Offers,flipkart Fashion for Travel Lovers,FLIPKART Great Offers On Furniture,FLIPKART Discounts for You,flipkart Deals of the Day


    flipkart axis cashback offer,
    flipkart discount coupon codes, flipkartcashbackoffers,flipkart sbi cashback offers, flipkart cashback offers on mobiles,big billion day offers flipkart cashback, cashback offers flipkart, flipkart exchange offers on mobiles, flipkart cashback, flipkart cashback june,flipkart cashback offers, flipkart offers toady,flipkart bank cashback offer, flipkart cashback offers on watches, flipkart cashback offers on fashion, flipkart big billion day cashback offers, flipkart cashback may, flipkart big billion day offers 2017, flipkart deal of the day offers, flipkart christmas cashback offers, flipkart hdfc cashback, flipkart hdfc cashback offers, flipkart coupons, flipkart offers, flipkart offers cashback, flipkart offers 2017, flipkart axis bank offer, flipkart cashback february, flipkart cashback offers on washing, flipkart big billion day offers, flipkart hdfc cashback on electronics,flipkart offers on moblies, flipkartcashbackoffers, flipkart citi bank offers, flipkart cashback april, flipkart daily offers, flipkart yes cashback offer, flipkart today offers, flipkart discount offers on kitchen, flipkart cashback on home appliances, flipkart discount offers, flipkart deals today, flipkart cashback on mobiles, flipkart cashback offers on sarees, flipkart hdfc offer, flipkart cashback january, flipkart cashback offers on home, flipkart phonepe cashback offer, flipkart credit card offers, flipkart republic day sale offers, flipkart promo codes, flipkart cashback on refrigerators, flipkart upcoming offers in 2018, flipkart sbi offers, flipkart hdfc offer on mobiles,flipkart sbi offer cashback, flipkart debit card offers, flipkart phonepe offers, flipkart cashback coupons, flipkart citi bank offer, flipkart coupons 2018, flipkart citi bank offer on electronics, flipkart cashback on air conditioners, flipkart mobiles offers, flipkart iphone offers, flipkart hdfc bank offers, flipkart offers today, flipkart discounts on laptops flipkart exchange offers, flipkart sbi cashback offer, big trillion day offers flipkart ,flipkart citi bank cashback offers, flipkart cashback offers 2018, flipkart hdfc offers flipkart axis bank offers, flipkart air conditioner offers flipkart offers on televisions, flipkart refrogiratiors offers, flipkart sbi offer, flipkart daily deals, flipkart phonepe cashback offers, flipkart cashback offers, flipkart offers on laptops, flipkart new year cashback offers, flipkart emi offers, flipkart sbi offers on electronics



    Musafir, My Bus Tickets, Myles, Orbitz, Qatar Airways, Rehlat, Sixt Car Rental, Skyscanner, SOTC Holidays, Starline Tours, Thomas Cook, Ticket Goose, Travelguru, Travel Talk Tours, Treebohotels

    返信削除
  10. ,Credit card offers in jabong,jabong hdfc Cashback,jabong icici cashback,jabong sbi cashback,
    Jabong Cashback Offers & Discount Coupons 2018 : Extra 20% Offer,jabong coupons, jabong offers, hdfc jabong offer, icici jabong offer 2018, jabong footwear, sbi jabong offer, jabong axis bank offer, jabong sbi offer 2018,jabong cashback Offers, jabong cashback, jabong Deals,Credit card offers in jabong,jabong hdfc Cashback,jabong icici cashback,jabong sbi cashback ,jabong axis cashback,jabong offers,Jabong cashback coupons,jabong offers


    Online Sale - Online Sale Shopping of up to 70% Of...
    zivame cash back offers
    Jabong Bank Coupons April 2018 for ICICI, SBI, HDF...
    Ferns N Petals
    Amazon today's deals great saving every day
    Up to 40% off TVs & Appliances + Additional 10% cashback offers


    amazon cashback offers,Amazon Cashback Offers May 2018 Upto 65% Cashback Deals,Amazon cashback offers January,Amazon cashback offers February,amazon cashback march,Amazon offers april , Cashback offers may , August cashback amazon , September offers cashback November , Cashback offers on December , HDFC Credit card offers on amazon,Axis Bank credit card offer on amazon,ICICI bank offers in amazon,Citi bank cashback on amazon

    Amazon cashback offers January , Amazon cashback offers February , amazon cashback march , Amazon offers april , Cashback offers may , August cashback amazon , September offers cashback November , Cashback offers on December , HDFC Credit card offers on amazon , Axis Bank credit card offer on amazon , ICICI bank offers in amazon , Citi bank cashback on amazon

    make my trip citi credit and debit cards offers:- ...
    make my trip International hotel jaw -dropping dea...
    make my trip first night free on 1st hotel booking...
    Hurry! Get exciting discounts on Hotels & Flights ...
    akbartravels save big upto 1000 off on flight book...
    Exclusive offer: Get 15% OFF on HOTELS with Visa f...
    Exclusive offer: Get 15% OFF on HOTELS with Visa ...
    (10 may 18) : TRAVELSPICE 5 Star Hotels at 3 Star ...
    Travelspice - 10 may 18 cashback offers
    maake my trip anniversary trvel sale best deal int...
    Makemytrip International Flights latest deals on ...
    TopTravel Websites cashback offers &discounts upto

    返信削除

  11. Flipkart CashBack Offers - SBI, HDFC, ICICI, Citibank Cards,flipkart sbi debit card emi,flipkart upcoming offers on mobiles,snapdeal credit card offers,flipkart credit card,flipkart cashback phonepe,flipkart credit card generator,flipkart cashback offer phonepe,flipkart american express,india fake debit card generator,flipkart pockets offer,flipkart bank offers 2018,flipkart american express gift card,sbi credit card offers on flipkart today,sbi flipkart offer,sbi debit card offers cash back,sbi flipkart offer 2018,Flipkart Cashback Offers || Flipkart Bank Offers || Flipkart Deals 2018 ||


    cashback offers coupons,
    cashback offers coupons


    amazon Cashback Offers 2018 Upto 65% Cashback Deals, AMAZON CASHBACK
    OFFERS 2018, DISCOUNT COUPON OFFERS 2018, Amazon cashback offers with sbi hdfc icici axis banks credit&debit card offers more. amazon cashback offers2018,amazon india cashback,amazon offers on mobiles,amazon cashback2018,amazon offers 2018


    "cash back coupons "Coupons, Discounts & Offers on 1500+ Shopping Sites in
    India. Get Extra Cashback Everytime You Shop Online using Coupons of Amazon, Flipkart, Tata CLiQ, Nykaa etc."cashback, vouchers, coupons, discounts, offers, deals, promo codes,Coupons, Promo Codes & Cashback Offers


    Flipkart CashBack Offers,telugu bloggers ,telugu websites
    Flipkart CashBack Offers - SBI, HDFC, ICICI, Citibank Cards,flipkart sbi debit card emi,flipkart upcoming offers on mobiles,flipkart credit card,flipkart cashback phonepe,flipkart credit card generator,flipkart cashback offer phonepe,flipkart american express,india fake debit card generator,flipkart american express gift card,sbi credit card offers on flipkart today,sbi flipkart offer,sbi debit card offers cash back,sbi flipkart offer 2018,,telugu bloggers ,telugu websites

    返信削除
  12. Thank you for this great article i learn a lot from your article keep it up.
    attitude status in hindi
    Life status in hindi
    Love Status in hindi

    返信削除
  13. Nice work and I read your post, My friend recommended this blog and he was totally right keep up the good work, really, it left me so much impressed with this article, I hope you will have more great articles to share with readers, thank you the post.Thank you for this great article i read your post you really work well i learn a lot form your post keep it up. i follow your blog for learning something new.
    status about friendship
    खतरनाक शायरी 2019
    mahakal status in hindi
    cute love status in hindi

    返信削除

  • HOME
  • ABOUT
このページの先頭へ