extends Node signal auth_changed var is_logged_in := false var username := "" var role := "" var access_token := "" var refresh_token := "" var expires_at := "" func set_session(new_username: String, token: String, new_refresh_token: String = "", new_role: String = "", token_expiration: String = "") -> void: is_logged_in = not token.is_empty() username = new_username access_token = token refresh_token = new_refresh_token role = new_role expires_at = token_expiration auth_changed.emit() func clear_session() -> void: is_logged_in = false username = "" role = "" access_token = "" refresh_token = "" expires_at = "" auth_changed.emit()