chore: bump version to 1.2.0 and commit recent fixes/features including tray and auth isolation #4
@@ -519,20 +519,60 @@ electron_1.ipcMain.handle('get-server-users', async () => { initBackend(); retur
|
||||
electron_1.ipcMain.handle('switch-account', async (event, loginName) => await handleSwitchAccount(loginName));
|
||||
electron_1.ipcMain.handle('open-external', (event, url) => electron_1.shell.openExternal(url));
|
||||
electron_1.ipcMain.handle('open-steam-app-login', async () => {
|
||||
console.log('[SteamClient] Triggering desktop login window...');
|
||||
// Force Steam to show login window.
|
||||
// steam://open/login is the protocol for this.
|
||||
console.log('[SteamClient] Preparing for fresh login...');
|
||||
await killSteam();
|
||||
if (process.platform === 'win32') {
|
||||
// Clear auto-login registry
|
||||
const clearReg = 'reg add "HKCU\\Software\\Valve\\Steam" /v AutoLoginUser /t REG_SZ /d "" /f';
|
||||
await new Promise((res) => (0, child_process_1.exec)(clearReg, () => res()));
|
||||
}
|
||||
else if (process.platform === 'linux') {
|
||||
// On Linux we can use the steamClient helper to set an empty user
|
||||
await steam_client_1.steamClient.setAutoLoginUser("", undefined, "");
|
||||
}
|
||||
const command = process.platform === 'win32' ? 'start steam://open/login' : 'xdg-open steam://open/login';
|
||||
(0, child_process_1.exec)(command);
|
||||
return true;
|
||||
});
|
||||
electron_1.ipcMain.handle('open-steam-login', async (event, expectedSteamId) => {
|
||||
const loginSession = electron_1.session.fromPartition('persist:steam-login');
|
||||
// Removed: automatic clearStorageData to allow cookie persistence
|
||||
// Use a unique partition per account to prevent session bleeding
|
||||
const partitionId = expectedSteamId ? `persist:steam-login-${expectedSteamId}` : 'persist:steam-login-new';
|
||||
const loginSession = electron_1.session.fromPartition(partitionId);
|
||||
// If adding a brand new account, explicitly clear previous trash
|
||||
if (!expectedSteamId) {
|
||||
console.log('[Auth] Clearing session for new account login...');
|
||||
await loginSession.clearStorageData({ storages: ['cookies', 'localstorage', 'indexdb'] });
|
||||
}
|
||||
// If we have an existing cookie string for this account, pre-inject it
|
||||
if (expectedSteamId) {
|
||||
const accounts = store.get('accounts');
|
||||
const account = accounts.find(a => a.steamId === expectedSteamId);
|
||||
if (account?.steamLoginSecure) {
|
||||
console.log(`[Auth] Pre-injecting existing cookies for ${account.personaName}...`);
|
||||
const cookiePairs = account.steamLoginSecure.split(';').map(c => c.trim());
|
||||
for (const pair of cookiePairs) {
|
||||
const [name, value] = pair.split('=');
|
||||
if (name && value) {
|
||||
try {
|
||||
await loginSession.cookies.set({
|
||||
url: 'https://steamcommunity.com',
|
||||
domain: 'steamcommunity.com',
|
||||
name: name,
|
||||
value: value,
|
||||
path: '/',
|
||||
secure: true,
|
||||
httpOnly: name.includes('Secure')
|
||||
});
|
||||
}
|
||||
catch (e) { }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return new Promise((resolve) => {
|
||||
const loginWindow = new electron_1.BrowserWindow({
|
||||
width: 800, height: 700, parent: mainWindow || undefined, modal: true, title: 'Login to Steam',
|
||||
webPreferences: { nodeIntegration: false, contextIsolation: true, partition: 'persist:steam-login' }
|
||||
webPreferences: { nodeIntegration: false, contextIsolation: true, partition: partitionId }
|
||||
});
|
||||
loginWindow.loadURL('https://steamcommunity.com/login/home/?goto=my/gcpd/730');
|
||||
const checkCookie = setInterval(async () => {
|
||||
|
||||
4
frontend/package-lock.json
generated
4
frontend/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "ultimate-ban-tracker-desktop",
|
||||
"version": "1.0.0",
|
||||
"version": "1.2.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ultimate-ban-tracker-desktop",
|
||||
"version": "1.0.0",
|
||||
"version": "1.2.0",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.14.0",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ultimate-ban-tracker-desktop",
|
||||
"description": "Professional Steam Account Manager & Ban Tracker",
|
||||
"version": "1.1.0",
|
||||
"version": "1.2.0",
|
||||
"author": "Nils Pukropp <nils@narl.io>",
|
||||
"homepage": "https://narl.io",
|
||||
"license": "SEE LICENSE IN LICENSE",
|
||||
|
||||
Reference in New Issue
Block a user