fix qr code auth

This commit is contained in:
2025-12-20 17:45:16 +05:00
parent d25cda62df
commit acd46bb31c
2 changed files with 25 additions and 20 deletions

View File

@ -22,8 +22,19 @@ export default function useAuth() {
// Прямой HTTP-запрос к вашему серверу // Прямой HTTP-запрос к вашему серверу
const session = await authenticate(username, password); const session = await authenticate(username, password);
await applySession(session, saveConfigFunc);
return session;
} catch (error) {
console.error('Ошибка при аутентификации:', error);
setStatus('error');
throw error;
}
};
// Сохраняем в конфигурацию const applySession = async (
session: AuthSession,
saveConfigFunc: (config: any) => void,
) => {
saveConfigFunc({ saveConfigFunc({
username: session.selectedProfile.name, username: session.selectedProfile.name,
uuid: session.selectedProfile.id, uuid: session.selectedProfile.id,
@ -32,19 +43,10 @@ export default function useAuth() {
memory: 4096, memory: 4096,
}); });
// Уведомляем Electron (для запуска Minecraft)
await window.electron.ipcRenderer.invoke('auth-changed', { await window.electron.ipcRenderer.invoke('auth-changed', {
isAuthed: true, isAuthed: true,
minecraftSession: session, // Передаём всю сессию minecraftSession: session,
}); });
setStatus('authenticating');
return session;
} catch (error) {
console.error('Ошибка при аутентификации:', error);
setStatus('error');
throw error;
}
}; };
// Валидация токена (HTTP напрямую) // Валидация токена (HTTP напрямую)
@ -95,5 +97,6 @@ export default function useAuth() {
authenticateUser, authenticateUser,
validateSession, validateSession,
refreshSession, refreshSession,
applySession,
}; };
} }

View File

@ -159,11 +159,13 @@ const Login = ({ onLoginSuccess }: LoginProps) => {
if (res.status === 'ok') { if (res.status === 'ok') {
stopQrPolling(); stopQrPolling();
saveConfig({ const session = {
accessToken: res.accessToken, accessToken: res.accessToken,
clientToken: res.clientToken, clientToken: res.clientToken,
username: res.selectedProfile?.name ?? config.username, selectedProfile: res.selectedProfile,
}); };
await auth.applySession(session as any, saveConfig);
if (onLoginSuccess) { if (onLoginSuccess) {
onLoginSuccess(res.selectedProfile?.name ?? config.username); onLoginSuccess(res.selectedProfile?.name ?? config.username);