pf-sdn/webui/src/utils/cookies.js

42 lines
1.5 KiB
JavaScript

// src/utils/cookies.js
const TOKEN_KEY = 'sdn_auth_token';
/**
* Получает токен авторизации из куки.
* @returns {string|null} Токен или null, если не найден.
*/
export function getAuthToken() {
const nameEQ = TOKEN_KEY + "=";
const ca = document.cookie.split(';');
for(let i=0; i < ca.length; i++) {
let c = ca[i];
while (c.charAt(0) === ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) === 0) {
return c.substring(nameEQ.length, c.length);
}
}
return null;
}
/**
* Устанавливает токен авторизации в куки на 1 год.
* @param {string} token - Токен для сохранения.
*/
export function setAuthToken(token) {
const expirationDate = new Date();
// Устанавливаем срок действия на 1 год
expirationDate.setTime(expirationDate.getTime() + (365 * 24 * 60 * 60 * 1000));
const expires = "expires=" + expirationDate.toUTCString();
// Используем secure и samesite=Lax (рекомендуется для современных браузеров)
// path=/ делает токен доступным для всего сайта
document.cookie = `${TOKEN_KEY}=${token};${expires};path=/;samesite=Lax`;
}
/**
* Удаляет токен авторизации.
*/
export function removeAuthToken() {
document.cookie = `${TOKEN_KEY}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;
}