File size: 2,899 Bytes
a8c5c8e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const SESSION_DIR = path.join(__dirname, '..', '..', 'session');
const TOKEN_FILE = path.join(SESSION_DIR, 'auth_token.txt');
export function initSessionDirectory() {
if (!fs.existsSync(SESSION_DIR)) {
fs.mkdirSync(SESSION_DIR, { recursive: true });
console.log(`Создана директория для сессий: ${SESSION_DIR}`);
}
}
export async function saveSession(context) {
try {
initSessionDirectory();
if (context && context.browser()) {
const sessionPath = path.join(SESSION_DIR, 'state.json');
await context.storageState({ path: sessionPath });
console.log('Сессия сохранена');
return true;
}
} catch (error) {
console.error('Ошибка при сохранении сессии:', error);
}
return false;
}
export async function loadSession(context) {
try {
const sessionPath = path.join(SESSION_DIR, 'state.json');
if (fs.existsSync(sessionPath)) {
await context.storageState({ path: sessionPath });
console.log('Сессия загружена');
return true;
}
} catch (error) {
console.error('Ошибка при загрузке сессии:', error);
}
return false;
}
export function clearSession() {
try {
const sessionPath = path.join(SESSION_DIR, 'state.json');
if (fs.existsSync(sessionPath)) {
fs.unlinkSync(sessionPath);
console.log('Сессия очищена');
return true;
}
} catch (error) {
console.error('Ошибка при очистке сессии:', error);
}
return false;
}
export function hasSession() {
const sessionPath = path.join(SESSION_DIR, 'state.json');
return fs.existsSync(sessionPath);
}
export function saveAuthToken(token) {
try {
initSessionDirectory();
if (token) {
fs.writeFileSync(TOKEN_FILE, token, 'utf8');
console.log('Токен авторизации сохранен');
return true;
}
} catch (error) {
console.error('Ошибка при сохранении токена авторизации:', error);
}
return false;
}
export function loadAuthToken() {
try {
if (fs.existsSync(TOKEN_FILE)) {
const token = fs.readFileSync(TOKEN_FILE, 'utf8');
console.log('Токен авторизации загружен');
return token;
}
} catch (error) {
console.error('Ошибка при загрузке токена авторизации:', error);
}
return null;
} |