summaryrefslogtreecommitdiffstatshomepage
path: root/src-tauri/src/core/auth.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src-tauri/src/core/auth.rs')
-rw-r--r--src-tauri/src/core/auth.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src-tauri/src/core/auth.rs b/src-tauri/src/core/auth.rs
new file mode 100644
index 0000000..39c4ce0
--- /dev/null
+++ b/src-tauri/src/core/auth.rs
@@ -0,0 +1,28 @@
+use serde::{Deserialize, Serialize};
+use std::sync::Mutex;
+use uuid::Uuid;
+
+#[derive(Debug, Clone, Serialize, Deserialize)]
+pub struct OfflineAccount {
+ pub username: String,
+ pub uuid: String,
+}
+
+pub struct AccountState {
+ pub active_account: Mutex<Option<OfflineAccount>>,
+}
+
+impl AccountState {
+ pub fn new() -> Self {
+ Self {
+ active_account: Mutex::new(None),
+ }
+ }
+}
+
+pub fn generate_offline_uuid(username: &str) -> String {
+ // Generate a UUID v3 (MD5-based) using the username as the name
+ // This provides a consistent UUID for the same username
+ let namespace = Uuid::NAMESPACE_OID;
+ Uuid::new_v3(&namespace, username.as_bytes()).to_string()
+}