public static async Task <bool> IsLoggedOn(bool online) { try { string jwt = FileManager.getItemAsString("jwt"); if (online && jwt != null) { User user = await GetUserAsync(online); if (user != null && SoftwareCoUtil.IsValidEmail(user.email)) { FileManager.setItem("name", user.email); FileManager.setItem("jwt", user.plugin_jwt); lastJwt = user.plugin_jwt; return(true); } string api = "/users/plugin/state"; HttpResponseMessage response = await SoftwareHttpManager.SendRequestAsync(HttpMethod.Get, api, jwt); if (SoftwareHttpManager.IsOk(response)) { string responseBody = await response.Content.ReadAsStringAsync(); IDictionary <string, object> jsonObj = (IDictionary <string, object>)SimpleJson.DeserializeObject(responseBody, new Dictionary <string, object>()); if (jsonObj != null) { jsonObj.TryGetValue("state", out object stateObj); string state = (stateObj == null) ? "NONE" : Convert.ToString(stateObj); jsonObj.TryGetValue("jwt", out object pluginJwtObj); string pluginJwt = (pluginJwtObj == null) ? null : Convert.ToString(pluginJwtObj); if (state.Equals("OK") && pluginJwt != null) { jsonObj.TryGetValue("email", out object nameObj); string name = (nameObj == null) ? null : Convert.ToString(nameObj); if (name != null) { FileManager.setItem("name", name); } FileManager.setItem("jwt", pluginJwt); lastJwt = pluginJwt; } else if (state.Equals("NOT_FOUND")) { FileManager.setItem("jwt", null); lastJwt = null; } } } } FileManager.setItem("name", null); } catch (Exception ex) { // } return(false); }