Persist auth data across restarts

This commit is contained in:
Max Goodhart
2020-08-24 00:50:59 -07:00
parent 5063a95ab7
commit a7b5bb3d1b
3 changed files with 49 additions and 2 deletions

View File

@@ -64,13 +64,24 @@ export class StateWrapper {
}
export class Auth extends EventEmitter {
constructor({ adminUsername, adminPassword }) {
constructor({ adminUsername, adminPassword, persistData }) {
super()
this.adminUsername = adminUsername
this.adminPassword = adminPassword
this.salt = rand62(16)
this.salt = persistData?.salt || rand62(16)
this.tokensById = new Map()
this.tokensByHash = new Map()
for (const token of persistData?.tokens ?? []) {
this.tokensById.set(token.id, token)
this.tokensByHash.set(token.tokenHash, token)
}
}
getPersistData() {
return {
salt: this.salt,
tokens: [...this.tokensById.values()],
}
}
getState() {