UNPKG

librecast-live

Version:

Live Streaming Video Platform with IPv6 Multicast

69 lines (65 loc) 1.82 kB
const authComboKeyHex = "fbdd352740551bd867f1970e7fc1a8fb23b0f84865beb7550aa51e5aa349e9271fd320c9db88bdbf249527b9720d90b30c03bdf0e06efe667e3e1e7e6f243c1f"; const login = function(emailAddress, password) { const kp = sodium.crypto_box_keypair(); let loggedin = false; return new Promise((resolve, reject) => { const auth = new Auth(lctx, authComboKeyHex, kp, (opcode, flags, fields, pre) => { if (loggedin) return; loggedin = true; const view = new DataView(pre) const responseCode = view.getUint8(0).toString(); if (responseCode === "0") { resolve(); } else { reject(); } }); auth.ready.then(() => { auth.login(emailAddress.value, password.value); }); }); } const setPassword = function(token, password) { const kp = sodium.crypto_box_keypair(); let passet = false; return new Promise((resolve, reject) => { const auth = new Auth(lctx, authComboKeyHex, kp, (opcode, flags, fields, pre) => { if (passet) return; passet = true; const view = new DataView(pre) const responseCode = view.getUint8(0).toString(); if (responseCode === "0") { resolve(); } else { reject(); } }) auth.ready.then(() => { auth.setPassword(token, password.value); }); }); } const signup = function() { const emailAddress = document.getElementById("emailAddress"); const kp = sodium.crypto_box_keypair(); let signup = false; return new Promise((resolve, reject) => { const auth = new Auth(lctx, authComboKeyHex, kp, (opcode, flags, fields, pre) => { if (signup) return; signup = true; const view = new DataView(pre) const responseCode = view.getUint8(0).toString(); if (responseCode === "0") { resolve(); } else { reject(); } }) auth.ready.then(() => { auth.signup(emailAddress.value, null); }); }); }