fix qr code auth
This commit is contained in:
@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user