Укажите срок годности при настройке куки

Я хочу указать дату истечения срока действия при настройке куки в VCL. В настоящее время у меня есть что-то вроде этого:

add resp.http.Set-Cookie = "language=" + req.http.X-Language + "; path=/";

Я знаю, что мне придется добавить что-то вроде этого:

Expires=Thu, 01 Jan 1970 00:00:00 GMT

Есть ли встроенная функция в Varnish, которая позволит мне динамически устанавливать дату истечения срока в будущем? Я смотрю на их документы, но пока не повезло.

Заранее большое спасибо.

-Angel

2 ответа

Решение

ОБНОВЛЕНИЕ - Рабочий раствор:

Не уверен, что этот синтаксис специфичен для Fastly, но я получил его с помощью: time.add(now,1d):

add resp.http.Set-Cookie = "language=" + req.http.X-Language + ";expires="+ time.add(now,1d) +"; path=/";

Если вы используете Varnish 4, вы должны использовать Cookie VMOD. Из документа: https://github.com/varnish/varnish-modules/blob/master/docs/vmod_cookie.rst

format_rfc1123

STRING format_rfc1123 (ВРЕМЯ сейчас, DURATION timedelta)
Описание
Получите строку даты в формате RFC1123, подходящую для включения в заголовок ответа Set-Cookie.

Следует проявлять осторожность, если в ответе несколько заголовков Set-Cookie. В этом случае следует использовать заголовок vmod.

пример
sub vcl_deliver {
        # Установите идентификатор пользователя на клиенте, который живет в течение 5 минут.
        set resp.http.Set-Cookie = "userid=" + req.http.userid + "; Expires=" + cookie.format_rfc1123(сейчас 5м) + "; httpOnly";
}
Другие вопросы по тегам