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

View File

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