pahlcon:cookies设置
设置 cookies
2023-09-14 08:57:52 时间
非加密方式(简单,但不推荐)
步骤 1
在全局容器中加入Cookie:
$di->set('cookies', function () { $cookies = new \Phalcon\Http\Response\Cookies(); $cookies->useEncryption(false); //默认使用加密方式,但这里我们刚开始使用非加密方式 return $cookies; });
步骤 2
首先,需要在用户登陆时根据用户的输入信息生成cookies,然后存储在cookies中,并设置好失效的时间。
如下所示:
//设备变量name=xxx,有效时间为未来一周 $this->cookies->set('name', 'xxx', time() + 7 * 86400); $this->cookies->set('passwd', 'xxx', time() + 7 * 86400);
步骤 3
通常Phalcon的项目中会使用ACL进行用户的访问控制,而要实现用户在任何时间打开浏览器直接访问,就需要在ACL控制逻辑中获取Cookie中的值进行判断。
//获得name $this->cookies->get('name')->getValue(); $this->cookies->get('passwd')->getValue();
加密方式(推荐)
加密方式是默认的Cookie方式,但在使用前必须满足以下条件:
1. 在全局容器中加入crypt并定义key,即:
$di->set('cookies', function () { $cookies = new \Phalcon\Http\Response\Cookies(); // $cookies->useEncryption(false); return $cookies; }); $di->set('crypt', function (){ $crypt = new Phalcon\Crypt(); $crypt->setKey('xxxxxx'); //salt return $crypt; });
2. 由于crypt依赖于php中的mcrypt扩展,所以必须安装
3. 使用加密方式后,Phalcon中有一个bug存在,即在以下代码中获取数据时会有空白字符:
//获得name $this->cookies->get('name')->getValue(); $this->cookies->get('passwd')->getValue();
必须改成:
trim($this->cookies->get('name')->getValue()); trim($this->cookies->get('passwd')->getValue());
相关文章
- 图书管理系统设置登录验证(cookies)
- 【ASP】Window2008站点安全设置,IIS7/IIS7.5中目录执行权限的设置方法
- VS中设置版本号自动递增
- Ubuntu 文件文件夹查看权限和设置权限
- 设置闪烁的标题栏
- scrapy中如何设置应用cookies
- CentOS 7 mini安装后安装图形界面及远程设置
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- deepin v20.2.4设置全局搜索的快捷键
- Express app.get 进行路由 Route 设置
- Android11.0 默认开启WLAN热点设置默认热点名称和密码
- Android 10.0 Launcher3文件夹设置默认名称和hotseat显示名称
- python requests模块手动设置cookies的几种方式
- 【Android Gradle 插件】将自定义 Gradle 插件上传到自建 Maven 仓库 ⑧ ( 设置 Gradle 插件模块 | 将 Gradle 插件上传到自建 Maven 仓库 )
- CSS文本简单设置
- ES索引模板——就是在新建索引时候指定的正则匹配来设置mapping而已,对于自动扩容有用
- redis设置密码和redis主从复制
- KVM虚拟机设置虚拟机的CPU型号与物理机相同
- [springMVC学习]1、springmvc设置spring配置文件