我正在尝试设置一个Nginx服务器,当它在某个位置上命中时,它会在cookie中设置某些参数。
我具有以下配置,该参数将参数放入cookie中,但是到期不起作用。这是我的配置:
server {
listen 8800 default_server;
include /etc/nginx/default.d/*.conf;
server_name test.net;
location /initial {
add_header Set-Cookie lcid=1043;
add_header Set-Cookie expires=60;
}
}
根据我的理解,在设置此Cookie 60秒后,该Cookie应该失效并被删除。但是,它仍然存在。
此配置有什么问题吗?
任何帮助将不胜感激, 谢谢!
答案 0 :(得分:0)
以上配置将导致设置两个Set-Cookie标头作为响应发送给客户端。
Set-Cookie:lcid = 1043 Set-Cookie:expires = 60
“ Expires”是一个cookie属性,应在设置cookie名称和值的标题中出现。还要注意的一点是,cookie的Expires属性仅采用固定时间戳(例如:Expires = Wed,2015年10月21日07:28:00 GMT),而不是持续时间。如果需要根据持续时间指定cookie的有效性,则需要设置Max-Age属性而不是Expires。
因此,您需要将配置更改为仅具有一个如下所示的add_header指令
add_header Set-Cookie“ lcid = 1043; Max-Age = 60”;
这将确保客户端在响应中仅接收到一个Set-Cookie标头,并具有在cookie的Max-Age属性中指定的适当的到期值。
答案 1 :(得分:0)
发现可以直接在Wordpress的上游完成此操作。
将以下几行添加到wp-config.php的顶部:
@ini_set('session.cookie_httponly', true);
@ini_set('session.cookie_secure', true);
@ini_set('session.use_only_cookies', true);
然后重新启动Wordpress。