从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我需要将此String转换回日期对象并与当前日期值进行比较。以下是我尝试这样做的方式。
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.log(opbs);
var c = opbs.split('_');
var result = c[0];
var expiry_time = Date.parse(c[1]);
var now = Date.now();
console.log(expiry_time.toString());
if (expiry_time < now) {
return null;
}
else {
return result;
}
}
然而,当我在字符串上使用Date.parse时,我不断为expire_date获取Nan值。感谢你的帮助。
谢谢!