This commit is contained in:
parent
d286548850
commit
a3f021fdd2
20
README.md
20
README.md
@ -1,6 +1,6 @@
|
||||
# auth-server-helper
|
||||
|
||||
version: 2.0.0
|
||||
version: 2.0.x
|
||||
|
||||
customizable and simple authentication
|
||||
|
||||
@ -128,6 +128,24 @@ const export = blacklist.export_blacklist();
|
||||
blacklist.import_blacklist(export);
|
||||
```
|
||||
|
||||
### Clearing Keystore and Blacklist
|
||||
|
||||
Resetting the Keystore instance generates a new instance id and deletes all
|
||||
imported or generated keys.
|
||||
|
||||
```js
|
||||
const {keystore, blacklist} = require('@sapphirecode/auth-server-helper');
|
||||
|
||||
// clear keystore
|
||||
keystore.reset_instance();
|
||||
|
||||
// clear blacklist
|
||||
blacklist.clear();
|
||||
|
||||
// clear blacklist items older than 10 seconds
|
||||
blacklist.clear(Date.now() - 10000);
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT © Timo Hocker <timo@scode.ovh>
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
interface Signature {
|
||||
hash: string;
|
||||
iat: Date;
|
||||
iat: number;
|
||||
}
|
||||
|
||||
class Blacklist {
|
||||
@ -17,15 +17,15 @@ class Blacklist {
|
||||
this._signatures = [];
|
||||
}
|
||||
|
||||
public clear_before (date: Date):void {
|
||||
public clear (before: number = Number.POSITIVE_INFINITY):void {
|
||||
for (let i = this._signatures.length - 1; i >= 0; i--) {
|
||||
if (this._signatures[i].iat < date)
|
||||
if (this._signatures[i].iat < before)
|
||||
this._signatures.splice (i, 1);
|
||||
}
|
||||
}
|
||||
|
||||
public add_signature (hash: string):void {
|
||||
this._signatures.push ({ iat: (new Date), hash });
|
||||
this._signatures.push ({ iat: Date.now (), hash });
|
||||
}
|
||||
|
||||
public remove_signature (hash:string):void {
|
||||
|
@ -144,6 +144,11 @@ class KeyStore {
|
||||
}
|
||||
this.garbage_collect ();
|
||||
}
|
||||
|
||||
public reset_instance (): void {
|
||||
this._instance = to_b58 (random_hex (16), 'hex');
|
||||
this._keys = {};
|
||||
}
|
||||
}
|
||||
|
||||
const ks: KeyStore = (new KeyStore);
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@sapphirecode/auth-server-helper",
|
||||
"version": "2.0.0",
|
||||
"version": "2.0.1",
|
||||
"main": "dist/index.js",
|
||||
"author": {
|
||||
"name": "Timo Hocker",
|
||||
|
@ -52,7 +52,7 @@ describe ('blacklist', () => {
|
||||
jasmine.clock ()
|
||||
.tick (5000);
|
||||
blacklist.add_signature ('baz');
|
||||
blacklist.clear_before (new Date (Date.now () - 100));
|
||||
blacklist.clear (Date.now () - 100);
|
||||
expect (blacklist.is_valid ('foo'))
|
||||
.toBeTrue ();
|
||||
expect (blacklist.is_valid ('bar'))
|
||||
@ -61,7 +61,27 @@ describe ('blacklist', () => {
|
||||
.toBeFalse ();
|
||||
});
|
||||
|
||||
it ('should clear all', () => {
|
||||
blacklist.add_signature ('foo');
|
||||
blacklist.add_signature ('bar');
|
||||
blacklist.add_signature ('baz');
|
||||
expect (blacklist.is_valid ('foo'))
|
||||
.toBeFalse ();
|
||||
expect (blacklist.is_valid ('bar'))
|
||||
.toBeFalse ();
|
||||
expect (blacklist.is_valid ('baz'))
|
||||
.toBeFalse ();
|
||||
blacklist.clear ();
|
||||
expect (blacklist.is_valid ('foo'))
|
||||
.toBeTrue ();
|
||||
expect (blacklist.is_valid ('bar'))
|
||||
.toBeTrue ();
|
||||
expect (blacklist.is_valid ('baz'))
|
||||
.toBeTrue ();
|
||||
});
|
||||
|
||||
it ('should export and import data', () => {
|
||||
blacklist.add_signature ('baz');
|
||||
const exp = blacklist.export_blacklist ();
|
||||
// eslint-disable-next-line dot-notation
|
||||
expect (blacklist['_signatures'])
|
||||
|
@ -179,4 +179,16 @@ describe ('key store', () => {
|
||||
expect (() => ks.import_verification_data (exp))
|
||||
.toThrowError ('cannot import to the same instance');
|
||||
});
|
||||
|
||||
it ('should clear all', () => {
|
||||
// eslint-disable-next-line dot-notation
|
||||
expect (Object.keys (ks['_keys']).length)
|
||||
.toBeGreaterThan (0);
|
||||
const instance = ks.instance_id;
|
||||
ks.reset_instance ();
|
||||
// eslint-disable-next-line dot-notation
|
||||
expect (Object.keys (ks['_keys']).length)
|
||||
.toEqual (0);
|
||||
expect (instance).not.toEqual (ks.instance_id);
|
||||
});
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user