Skip to content

Instantly share code, notes, and snippets.

@madhavanmalolan
Created May 4, 2018 14:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save madhavanmalolan/757e04c19ce85640f962bab3fc73c298 to your computer and use it in GitHub Desktop.
Save madhavanmalolan/757e04c19ce85640f962bab3fc73c298 to your computer and use it in GitHub Desktop.
var BASE_URL = "https://dauth.co/";
var axios = require('axios');
var crypto = require('crypto');
var cryptico = require('cryptico');
router.get("/", function(req, res, next){
var username = req.query.username;
var code = req.query.code;
var hashcode = req.query.hashcode;
var urlGetter = BASE_URL + "utils/url?username="+username;
var addressGetter = BASE_URL + "utils/address?username="+username;
var keyGetter = BASE_URL + "utils/key?username="+username;
axios.get(urlGetter).then(function(aUrl){
axios.get(keyGetter).then(function(aKey){
var tokenRaw = crypto.createHash('sha256').update(Math.random().toString()).digest('base64').substr(0,10);
var encrypted = cryptico.encrypt(tokenRaw, aKey.data, "").cipher;
axios.post(aUrl.data+"?action=verify", {username:username,code:code, hashcode:hashcode, cipher: encrypted}).then(function(decrypted){
if(decrypted.data == tokenRaw){
axios.get(addressGetter).then(function(address){
//redirect to success page
}).catch(function(error){
//redirect to login failed page
});
return;
}
//redirect to login failed page
});
}).catch(function(error){
//redirect to login failed page
});
}).catch(function(error){
//redirect to login failed page
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment