Openresty 操作cookie共有两种方法:

1、直接操作

1.1 获取Cookie

获取所有cookie: ngx.var.http_cookie,  这里获取的是一个字符串,如果不存在则返回nil 。
获取单个cookie: ngx.var.cookie_username, 获取单个cookie,_后面的cookie的name,如果不存在则返回nil 。

1.2 设置Cookie

ngx.header['Set-Cookie'] = {'a=32; path=/', 'b=4; path=/'}-- 批量设置cookie

ngx.header['Set-Cookie'] = 'a=32; path=/' -- 设置单个cookie,通过多次调用来设置多个值

ngx.header['Set-Cookie'] = 'b=4; path=/'

ngx.header['Set-Cookie'] = 'c=5; path=/; Expires=' .. ngx.cookie_time(ngx.time() + 60 * 30) -- 设置Cookie过期时间为30分钟

熟悉http协议的应该都知道,设置cookie是通过在响应头中的Set-Cookie字段来操作的,既然知道原理那上面的代码应该就很好理解,其实只要知道怎么用lua来设置响应头即可

注意:设置cookie时要一定要加path和Expires(过期时间),不然无法生效,因为默认过期时间为立即。

2、使用lua-resty-cookie 插件

2.1、 获取cookie 
local cookie = resty_cookie:new()
local all_cookie = cookie:get_all() -- 这里获取到所有的cookie,是一个table,如果不存在则返回nil
print(cjson.encode(all_cookie))
print(cookie:get('c'))-- 获取单个cookie的值,如果不存在则返回nil
2.2、 设置cookie
cookie:set({
key = "c",
value = "123456",
path = "/",
domain = "localhost",
expires = ngx.cookie_time(ngx.time() + 60 * 13)
})

Openresty 操作Cookie的更多相关文章

  1. JavaScript 操作 Cookie

    转自作者:聂微东出处:http://www.cnblogs.com/Darren_code/      什么是 Cookie “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器 ...

  2. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  3. Jquery操作cookie,实现简单的记住用户名的操作

     一.jquery.cookie.js介绍  jquery.cookie.js是一个基于jquery的插件,一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cook ...

  4. jquery.cookie.js 操作cookie实现记住密码功能的实现代码

    jquery.cookie.js操作cookie实现记住密码功能,很简单很强大,喜欢的朋友可以参考下.   复制代码代码如下: //初始化页面时验证是否记住了密码 $(document).ready( ...

  5. Asp.net操作cookie大全

    实例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...

  6. ASP.NET 操作Cookie详解 增加,修改,删除

    ASP.NET 操作Cookie详解 增加,修改,删除 Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密).定义于RFC2109.它 ...

  7. ASP.NET操作Cookie

    1.生成Cookie public static void SetDataByCookie(string mainKey, string subKey, string value, string do ...

  8. 关于Jquery 操作Cookie 取值错误

    使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现cookie有四个不同的属性: 名称,内容,域,路径 $.cookie('the_cookie'); // 读取 cookie $ ...

  9. JAVA操作COOKIE

    JAVA操作COOKIE 1.设置Cookie Cookie cookie = new Cookie("key", "value"); cookie.setMa ...

随机推荐

  1. [经验]怎么删除“通过QQ/TIM发送到”右键菜单

      首先打开QQ主面板上的系统设置   选择[基本设置]-[文件管理]菜单,并将如图所示的选项去掉勾选即可

  2. NetSec2019 20165327 Exp0 Kali安装 Week1

    NetSec2019 20165327 Exp0 Kali安装 Week1 一.下载并安装Kali和VMware kali在官网下载,VMware上学期已安装 安装如下步骤: 选典型: 选稍后安装操作 ...

  3. linux逻辑卷管理(LVM)

    1. 逻辑卷(LVM)的原理 LVM(Logical Volume Manager)逻辑卷管理 是在物理磁盘和文件系统的之间添加一个逻辑层,通过对底层物理磁盘的封装,以逻辑卷的方式呈现给上层应用,通过 ...

  4. ELK原理与介绍

    为什么用到ELK: 一般我们需要进行日志分析场景:直接在日志文件中 grep.awk 就可以获得自己想要的信息.但在规模较大的场景中,此方法效率低下,面临问题包括日志量太大如何归档.文本搜索太慢怎么办 ...

  5. IOS-iphone默认的点击效果清除

    为需要被清除的元素添加此属性:-webkit-tap-highlight-color:rgba(255,255,255,0);

  6. WPF中定时器与进度条的配合使用

    WPF中定时器使用的注意事项: WPF需要使用System.Windows.Threading.DispatcherTimer定时器,而不能使用System.Timers.Timer定时器.因为Sys ...

  7. round函数解决oracle报错"OCI-22053: 溢出错误"的问题

    继上次公司网站报错除数为0的问题,这次又来报错溢出错误,还是同一条语句!搜索网上的解决方法,发现问题描述和解决方法如下: Oracle 数值数据类型最多可存储 38 个字节的精度.当将 Oracle ...

  8. 笔记:stm32 printf重定向到UART疑点解析

    在调试过程中往往需要通过打印来看系统运行状态:在STM32平台上,打印重定向有多种实现方案:其一是编译时使用keil自带的MacroLIB,据说这个库对一些C语言基础设施做了新的实现,代码结构更加紧凑 ...

  9. 启动Cognos时报0106错误

    1. 问题描述 启动Cognos失败,报错代码为0106. 2. 问题分析 是jdk版本不兼容. 3. 解决方案 方案一:更换jdk1.6,可以使用免安装版,不需要卸载原有的jdk将java_home ...

  10. nginx+tomcat 分布时服务部署

    一.       工具 nginx-1.8.0 apache-tomcat-6.0.33 二.    目标 实现高性能负载均衡的Tomcat集群: 三.    步骤 1.首先下载Nginx,要下载稳定 ...