Библиотека Quasar предоставляет удобный и гибкий
способ работы с cookies через встроенный плагин Cookies.
Этот инструмент позволяет безопасно сохранять данные на стороне клиента,
управлять сроком жизни cookie и поддерживать работу как на клиентской,
так и на серверной части (SSR).
Плагин доступен через объект this.$q.cookies в
компонентах Vue или через импорт из quasar в любом
модуле:
import { Cookies } from 'quasar';
После этого можно обращаться к методам для чтения, записи и удаления cookie.
set(key, value, options)Метод используется для сохранения cookie.
Пример:
Cookies.set('user', { name: 'Ivan', role: 'admin' }, {
path: '/',
maxAge: 3600,
secure: true
});
Ключевые параметры options:
'/'.'Lax', 'Strict', 'None').Date. Если указан, имеет приоритет над
maxAge.get(key)Возвращает значение cookie по имени. Если cookie не существует,
возвращает undefined.
const user = Cookies.get('user'); // { name: 'Ivan', role: 'admin' }
Для работы с JSON значениями автоматически выполняется десериализация.
has(key)Проверяет существование cookie с указанным именем. Возвращает
true или false.
if (Cookies.has('user')) {
console.log('Cookie существует');
}
remove(key, options)Удаляет cookie по имени. Для корректного удаления важно указать path и domain, если они были заданы при установке.
Cookies.remove('user', { path: '/' });
getAll()Возвращает объект со всеми доступными cookie:
const allCookies = Cookies.getAll();
console.log(allCookies);
// { user: { name: 'Ivan', role: 'admin' }, theme: 'dark' }
При серверном рендеринге (Nuxt.js, Quasar SSR) необходимо передавать cookies через заголовки запроса, чтобы плагин корректно работал на сервере:
export default function ({ req }) {
if (process.server) {
const userCookie = Cookies.parseSSR(req.headers.cookie || '');
console.log(userCookie);
}
}
Метод parseSSR позволяет извлекать cookie из заголовка
cookie и преобразовывать их в объект.
Cookies Quasar автоматически сериализуют объекты в JSON при записи и десериализуют при чтении.
Cookies.set('settings', { theme: 'dark', fontSize: 14 });
const settings = Cookies.get('settings'); // { theme: 'dark', fontSize: 14 }
Это удобно для хранения структурированных данных без необходимости
самостоятельно вызывать JSON.stringify или
JSON.parse.
httpOnly (только серверная обработка).secure и
sameSite: 'Lax' или 'Strict'.maxAge или
expires для предотвращения накопления устаревших
данных.Cookies.set('auth_token', token, {
path: '/',
secure: true,
sameSite: 'Strict',
maxAge: 1800
});
function logout() {
Cookies.remove('auth_token', { path: '/' });
Cookies.remove('user', { path: '/' });
}
const theme = Cookies.get('theme') || 'light';
const language = Cookies.get('lang') || 'en';
Плагин Cookies в Quasar обеспечивает удобный и безопасный механизм хранения клиентских данных, совместимый с SSR, с полной поддержкой опций безопасности, сериализации JSON и управления сроком жизни. Это делает его универсальным инструментом для работы с cookie в современных приложениях на Vue.js.