diff --git a/src/routes/index.js b/src/routes/index.js index f7df3c2..a663c37 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -13,14 +13,25 @@ var rc = new redis.createClient({ var checkRedirect = (id, resolve, reject) => { rc.get('session/redirect/'+id, (err, val) => { - if(err){ + if(err || !val){ setTimeout(checkRedirect, 20, id, resolve, reject); + }else{ + checkRedirect2(val, resolve, reject); + } + }); +} + +var checkRedirect2 = (token, resolve, reject) => { + rc.get('auth/token/'+token, (err, val) => { + if(!val){ + resolve(token); }else{ resolve(val); } }); } + var getAddress = (fp, mask) => { let id = md5(fp+mask); return new Promise((resolve, reject) => { @@ -87,7 +98,8 @@ router }else{ ws.close(); } - ws.on('message', function (msg) { + ws.on('message', async function (msg) { + hash = await getAddress(req.query.fp, req.query.mask); if(msg == 'get'){ var o = {}; rc.hkeys('session/dialog/'+hash, function(err, keys){