mirror of
https://github.com/amark/gun.git
synced 2025-06-15 10:36:40 +00:00
SEA.recall and .alive for async so User done
This commit is contained in:
parent
2902b3df97
commit
351623a487
48
sea.js
48
sea.js
@ -547,7 +547,7 @@
|
|||||||
}).filter((props) => !!props))
|
}).filter((props) => !!props))
|
||||||
|
|
||||||
if (!key) {
|
if (!key) {
|
||||||
throw new { err: err || 'Public key does not exist!' }
|
throw { err: err || 'Public key does not exist!' }
|
||||||
}
|
}
|
||||||
|
|
||||||
// now we have AES decrypted the private key,
|
// now we have AES decrypted the private key,
|
||||||
@ -760,31 +760,21 @@
|
|||||||
},
|
},
|
||||||
// If authentication is to be remembered over reloads or browser closing,
|
// If authentication is to be remembered over reloads or browser closing,
|
||||||
// set validity time in minutes.
|
// set validity time in minutes.
|
||||||
recall(setvalidity, cb, options) {
|
async recall(setvalidity, options) {
|
||||||
const root = this.back(-1)
|
const root = this.back(-1)
|
||||||
|
|
||||||
let validity
|
let validity
|
||||||
let callback
|
|
||||||
let opts
|
let opts
|
||||||
|
|
||||||
if (!options && typeof cb !== 'function' && !Gun.val.is(cb)) {
|
if (!Gun.val.is(setvalidity)) {
|
||||||
opts = cb
|
opts = setvalidity
|
||||||
|
validity = _initial_authsettings.validity
|
||||||
} else {
|
} else {
|
||||||
callback = cb
|
opts = options
|
||||||
|
validity = setvalidity * 60 // minutes to seconds
|
||||||
}
|
}
|
||||||
if (!callback) {
|
// TODO: for some reasong authrecall doesn't work with await here...
|
||||||
if (typeof setvalidity === 'function') {
|
return await new Promise((resolve, reject) => {
|
||||||
callback = setvalidity
|
|
||||||
validity = _initial_authsettings.validity
|
|
||||||
} else if (!Gun.val.is(setvalidity)) {
|
|
||||||
opts = setvalidity
|
|
||||||
validity = _initial_authsettings.validity
|
|
||||||
} else {
|
|
||||||
validity = setvalidity * 60 // minutes to seconds
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var doIt = function(resolve, reject){
|
|
||||||
// opts = { hook: function({ iat, exp, alias, proof }) }
|
// opts = { hook: function({ iat, exp, alias, proof }) }
|
||||||
// iat == Date.now() when issued, exp == seconds to expire from iat
|
// iat == Date.now() when issued, exp == seconds to expire from iat
|
||||||
// How this works:
|
// How this works:
|
||||||
@ -801,21 +791,19 @@
|
|||||||
Gun.log(err)
|
Gun.log(err)
|
||||||
resolve({ err: (e && e.err) || err })
|
resolve({ err: (e && e.err) || err })
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
if (callback) { doIt(callback, callback) } else { return new Promise(doIt) }
|
|
||||||
},
|
},
|
||||||
alive(cb) {
|
async alive() {
|
||||||
const root = this.back(-1)
|
const root = this.back(-1)
|
||||||
const doIt = (resolve, reject) => {
|
try {
|
||||||
// All is good. Should we do something more with actual recalled data?
|
// All is good. Should we do something more with actual recalled data?
|
||||||
authrecall(root).then(() => resolve(root._.user._))
|
await authrecall(root)
|
||||||
.catch((e) => {
|
return root._.user._
|
||||||
const err = 'No session!'
|
} catch (e) {
|
||||||
Gun.log(err)
|
const err = 'No session!'
|
||||||
reject({ err })
|
Gun.log(err)
|
||||||
})
|
throw { err }
|
||||||
}
|
}
|
||||||
if (cb) { doIt(cb, cb) } else { return new Promise(doIt) }
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -914,7 +914,7 @@ Gun().user && describe('Gun', function(){
|
|||||||
expect(props.err).to.not.be(undefined);
|
expect(props.err).to.not.be(undefined);
|
||||||
expect(props.err).to.not.be('');
|
expect(props.err).to.not.be('');
|
||||||
expect(props.err.toLowerCase()
|
expect(props.err.toLowerCase()
|
||||||
.indexOf('no session')).not.to.be(-1);
|
.indexOf('failed to decrypt')).not.to.be(-1);
|
||||||
done();
|
done();
|
||||||
}).catch(done);
|
}).catch(done);
|
||||||
}).catch(done);
|
}).catch(done);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user