Implement authentication logic
This commit is contained in:
parent
0398acf2b7
commit
cb3a151748
11 changed files with 196 additions and 24 deletions
37
frontend/src/lib/persistent_store.ts
Normal file
37
frontend/src/lib/persistent_store.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
import { writable } from 'svelte/store'
|
||||
|
||||
interface PersistedSettings {
|
||||
darkmode: boolean
|
||||
loggedIn: boolean
|
||||
friendlyName: string
|
||||
email: string
|
||||
role: string
|
||||
accessToken: string,
|
||||
refreshToken: string
|
||||
}
|
||||
|
||||
const settingsDefault: PersistedSettings = {
|
||||
darkmode: false,
|
||||
loggedIn: false,
|
||||
friendlyName: "",
|
||||
email: "",
|
||||
role: "member",
|
||||
accessToken: "",
|
||||
refreshToken: ""
|
||||
}
|
||||
|
||||
export const persistentSettings = writable<PersistedSettings>(JSON.parse(localStorage.getItem('persistentSettings') || JSON.stringify(settingsDefault)))
|
||||
|
||||
persistentSettings.subscribe((value) => localStorage.persistentSettings = JSON.stringify(value))
|
||||
|
||||
export const clearLoginState = function() {
|
||||
persistentSettings.update(settings => {
|
||||
settings.accessToken = "";
|
||||
settings.refreshToken = "";
|
||||
settings.loggedIn = false;
|
||||
settings.friendlyName = "";
|
||||
settings.email = "";
|
||||
settings.role = "member";
|
||||
return settings;
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue