Из Java мне нужно установить время истечения срока действия cookie для содержимого cookie вместо установки времени истечения срока действия этого файла cookie. Следующий код показывает, как это было сделано.
public static Cookie addOPBrowserStateCookie(HttpServletResponse response) {
int expiresSeconds = 120;
Date date = new Date();
date = new Date(date.getTime() +1000 * expiresSeconds);
String expiryTime = date.toGMTString();
Cookie cookie =
new Cookie(OIDCSessionConstants.OPBS_COOKIE_ID, UUID.randomUUID().toString() + "_" + expiryTime);
cookie.setSecure(true);
cookie.setPath("/");
response.addCookie(cookie);
return cookie;
}
Затем из Javascript мне нужно преобразовать эту строку обратно в объект даты и сравнить с текущим значением даты. Вот как я пытался это сделать.
function getOPBrowserState() {
var name = "opbs = ";
var cookie = document.cookie + ";";
var start = cookie.indexOf(name);
if (start != -1) {
var end = cookie.indexOf(";", start);
opbs = cookie.substring(start + name.length, end);
}
console.info(opbs);
var c = opbs.split('_');
var result = c[0];
var expiry_time = Date.parse(c[1]);
var now = Date.now();
console.info(expiry_time.toString());
if (expiry_time < now) {
return null;
}
else {
return result;
}
}
Однако, когда я использую Date.parse в строке, я продолжаю получать значение Nan для expire_date. Цените вашу помощь в этом.
Спасибо!
это строка GMT, которую я установил из Java для содержимого cookie, например "31 мая 2018 07:24:01 GMT"
new Date("31 May 2018 07:24:01 GMT"); должен работать
Спасибо! Да, это сработало. Однако проблема заключалась в том, что при разделении строки opbs случайным образом к концу строки добавлялись двойные кавычки. Следовательно, я получил результат Нан и раньше.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Что содержит
c[1]? Сnew Date()должно работать, если передать ему строку GMT.