From 1c65b489580fc4eb15415f9021e6c63aa9b8f8c9 Mon Sep 17 00:00:00 2001 From: str1k3r <115313679+S1l3ntStr1ke87@users.noreply.github.com> Date: Mon, 13 Jul 2026 07:15:06 -0400 Subject: [PATCH] fix(lceonline): user turning null by refreshing token when app is opened (#138) --- src/services/LceOnlineService.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/services/LceOnlineService.ts b/src/services/LceOnlineService.ts index 85d0748..6a2d3c3 100644 --- a/src/services/LceOnlineService.ts +++ b/src/services/LceOnlineService.ts @@ -23,6 +23,9 @@ export class LceOnlineService { private _listeners: Array<() => void> = []; constructor() { this.loadSession(); + if (this._session) { + this.refreshToken(); + } } onSessionChange(listener: () => void): () => void { @@ -195,6 +198,28 @@ export class LceOnlineService { return data; } + async refreshToken(): Promise { + if (!this._session) return false; + + try { + const res = await this.request("POST", "/refreshtoken", null, AUTH_BASE_URL); + if (typeof res === "string" && res.startsWith("-")) { + const [username, token] = res.slice(1).split(":"); + this._session.accessToken = token; + this._session.account = { username, displayName: username }; + this.saveSession(); + this._notify(); + return true; + } + this.logoutLocal(); + return false; + } catch (e) { + console.warn("Failed to refresh token", e); + this.logoutLocal() + return false; + } + } + async getSocialLists(): Promise<{ friends: string[]; requests: string[];