Streamlined grpc auth

Added ShareX Destiation on client
This commit is contained in:
2025-05-21 22:07:57 -04:00
parent acd30750a9
commit 7061b4c313
14 changed files with 155 additions and 46 deletions

View File

@@ -1,6 +1,8 @@
use dioxus::signals::{Signal, Writable};
use web_sys::window;
use crate::rpc::{login, logout};
#[derive(Clone, Copy, Default)]
pub struct AuthContext {
pub jwt: Signal<Option<String>>,
@@ -11,12 +13,14 @@ impl AuthContext {
self.jwt.set(Some(token.clone()));
let local_storage = window().unwrap().local_storage().unwrap().unwrap();
_ = local_storage.set_item("token", token.as_str());
login(token.clone());
}
pub fn logout(&mut self) {
self.jwt.set(None);
let local_storage = window().unwrap().local_storage().unwrap().unwrap();
_ = local_storage.remove_item("token");
logout();
}
pub fn new() -> Self {
@@ -25,17 +29,14 @@ impl AuthContext {
match local_storage.get_item("token") {
Ok(value) => {
if let Some(jwt) = value {
println!("jwt");
login(jwt.clone());
return AuthContext {
jwt: Signal::new(Some(jwt)),
};
}
return AuthContext::default();
}
Err(_) => {
println!("err");
AuthContext::default()
}
Err(_) => AuthContext::default(),
}
}
}