Hel*_*ope 7 java cookies subdomain playframework
我想创建一个可在我的子域中共享的cookie.我想使用这里显示的setCookie方法方法:https://www.playframework.com/documentation/1.4.x/api/play/mvc/Http.Response.html#setCookie-java.lang.String-java. lang.String-
如果我执行以下操作,它会创建一个cookie,但域名为"xxxx.mydomain.com"...所以完整域名:
response.setCookie("loggedIn", "true");
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作,cookie将永远不会显示在我的浏览器中.我究竟做错了什么?
response.setCookie("webLoggedIn", "true", ".mydomain.com", "/", 3600, false);
Run Code Online (Sandbox Code Playgroud)
当我尝试更改设置application.defaultCookieDomain似乎打破了我的cookie,但我认为它是因为我正在测试不同于生产域的域,这也是我设置的默认值.
在 Play Framework 1 上,正确的方法是将application.defaultCookieDomain 属性设置为类似的值yourdomain.com(不带前缀点)。这样,所有 cookie 将仅设置为域本身。
如果您使用此设置,.yourdomain.com则所有 cookie 将对所有子域可见,例如www.yourdomain.com或another.yourdomain.com,但域本身除外。
您提到您正在与生产环境不同的域上进行测试,然后您可以使用开发环境的默认域设置和生产环境的特定域,例如:
application.defaultCookieDomain=localhost
# Production configuration
%prod.application.defaultCookieDomain=yourdomain.com
Run Code Online (Sandbox Code Playgroud)
或者,您可以临时更改主机文件以将生产域解析为本地主机 IP(Linux 和 OSX 上的 /etc/hosts):
127.0.0.1 yourdomain.com
Run Code Online (Sandbox Code Playgroud)
注意:在 Play >= 2.1 上,属性更改为session.domain,在 Play >= 2.4 上,属性再次更改为play.http.session.domain。
| 归档时间: |
|
| 查看次数: |
210 次 |
| 最近记录: |