Created
July 25, 2020 05:29
-
-
Save sabine/ab6a43d037ad556c6ab10a37c9396337 to your computer and use it in GitHub Desktop.
Storing and Restoring Session from LocalStorage in Seed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use serde::{Deserialize, Serialize}; | |
#[derive(Clone, Debug, Deserialize, Serialize)] | |
pub enum Session { | |
LoggedIn(crate::entities::user::User), | |
Guest, | |
} | |
pub fn remove_session_from_local_storage() { | |
use seed::browser::web_storage::WebStorage; | |
seed::browser::web_storage::LocalStorage::remove("session"); | |
} | |
pub fn store_session_in_local_storage(session: &Session) { | |
use seed::browser::web_storage::WebStorage; | |
seed::browser::web_storage::LocalStorage::insert("session", session); | |
} | |
pub fn load_session_from_local_storage() -> Session { | |
use seed::browser::web_storage::WebStorage; | |
let maybe_session = seed::browser::web_storage::LocalStorage::get("session").ok(); | |
match maybe_session { | |
Some(s) => s, | |
None => Session::Guest, | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment