【发布时间】:2014-12-21 15:42:13
【问题描述】:
我正在开发一个应用程序,其中有许多子域,例如 api.*.com,它负责 REST 请求处理。我正在尝试为子域设置 cookie,使用:
public class PlayerTokenUtils {
final private static int DEFAULT_AGE = (int) TimeUnit.DAYS.toSeconds(7);
private PlayerTokenUtils() {
throw new IllegalAccessError();
}
public static PlayerToken updateResponse(String token, HttpServletResponse response) {
Cookie cookie = new Cookie("player", token);
cookie.setPath("/");
cookie.setHttpOnly(true);
cookie.setDomain(".mavarazy.com");
cookie.setMaxAge(DEFAULT_AGE);
response.addCookie(cookie);
return token;
}
}
我在 Firebug 中看到,注册请求 (http://api.mavarazy.com:3333/registration/base/signin) 和响应包含:
Set-Cookie player=rHIHtISWzw; Domain=.mavarazy.com; Expires=Sun, 02-Nov-2014 07:44:54 GMT; Path=/; HttpOnly
但是通过 api.mavarazy.com 对服务器的进一步请求不包含从 Set 返回的玩家 Cookie。
我正在使用的测试环境:
我修改了我的 /etc/hosts
127.0.0.1 mavarazy.com
127.0.0.1 api.mavarazy.com
我的 REST 服务器正在运行 Tomcat。
浏览器的所有 REST 请求都通过 Node.js 代理。
我做错了什么?在这种情况下,播放器 Cookie 的正确格式是什么?
【问题讨论】:
-
能否详细说明“不包含玩家Cookie,从Set返回”?你是什么意思?如何检查 cookie 是否已发送?
-
通过在 firebug 中查看请求,它们中没有播放器 Cookie。