Compare commits
1 Commits
release/v1
...
feat/revok
| Author | SHA1 | Date | |
|---|---|---|---|
| f3bc59e6d0 |
@@ -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('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-external', (event, url) => electron_1.shell.openExternal(url));
|
||||||
electron_1.ipcMain.handle('open-steam-app-login', async () => {
|
electron_1.ipcMain.handle('open-steam-app-login', async () => {
|
||||||
console.log('[SteamClient] Triggering desktop login window...');
|
console.log('[SteamClient] Preparing for fresh login...');
|
||||||
// Force Steam to show login window.
|
await killSteam();
|
||||||
// steam://open/login is the protocol for this.
|
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';
|
const command = process.platform === 'win32' ? 'start steam://open/login' : 'xdg-open steam://open/login';
|
||||||
(0, child_process_1.exec)(command);
|
(0, child_process_1.exec)(command);
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
electron_1.ipcMain.handle('open-steam-login', async (event, expectedSteamId) => {
|
electron_1.ipcMain.handle('open-steam-login', async (event, expectedSteamId) => {
|
||||||
const loginSession = electron_1.session.fromPartition('persist:steam-login');
|
// Use a unique partition per account to prevent session bleeding
|
||||||
// Removed: automatic clearStorageData to allow cookie persistence
|
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) => {
|
return new Promise((resolve) => {
|
||||||
const loginWindow = new electron_1.BrowserWindow({
|
const loginWindow = new electron_1.BrowserWindow({
|
||||||
width: 800, height: 700, parent: mainWindow || undefined, modal: true, title: 'Login to Steam',
|
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');
|
loginWindow.loadURL('https://steamcommunity.com/login/home/?goto=my/gcpd/730');
|
||||||
const checkCookie = setInterval(async () => {
|
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",
|
"name": "ultimate-ban-tracker-desktop",
|
||||||
"version": "1.0.0",
|
"version": "1.2.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "ultimate-ban-tracker-desktop",
|
"name": "ultimate-ban-tracker-desktop",
|
||||||
"version": "1.0.0",
|
"version": "1.2.0",
|
||||||
"license": "SEE LICENSE IN LICENSE",
|
"license": "SEE LICENSE IN LICENSE",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/react": "^11.14.0",
|
"@emotion/react": "^11.14.0",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "ultimate-ban-tracker-desktop",
|
"name": "ultimate-ban-tracker-desktop",
|
||||||
"description": "Professional Steam Account Manager & Ban Tracker",
|
"description": "Professional Steam Account Manager & Ban Tracker",
|
||||||
"version": "1.1.0",
|
"version": "1.2.0",
|
||||||
"author": "Nils Pukropp <nils@narl.io>",
|
"author": "Nils Pukropp <nils@narl.io>",
|
||||||
"homepage": "https://narl.io",
|
"homepage": "https://narl.io",
|
||||||
"license": "SEE LICENSE IN LICENSE",
|
"license": "SEE LICENSE IN LICENSE",
|
||||||
|
|||||||
Reference in New Issue
Block a user