博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pahlcon:cookies设置
阅读量:5149 次
发布时间:2019-06-13

本文共 1313 字,大约阅读时间需要 4 分钟。

非加密方式(简单,但不推荐)

步骤 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());

  

转载于:https://www.cnblogs.com/achengmu/p/6285398.html

你可能感兴趣的文章
2017-2018-1 20155305 《信息安全系统设计基础》第七周学习总结
查看>>
网络攻防第十周作业20189304李小涛
查看>>
UFLDL Tutorial
查看>>
Excel的使用技巧
查看>>
项目源代码中的File.separator作用
查看>>
学习swift从青铜到王者之swift闭包06
查看>>
Flask入门模板Jinja2语法与函数(四)
查看>>
184. Department Highest Salary (medium)
查看>>
SQL Server Management Studio支持自定义快捷键
查看>>
一张图入门Python
查看>>
单链表的基本操作----《数据结构》
查看>>
安装关系型数据库MySQL 安装大数据处理框架Hadoop
查看>>
鸡啄米vc++2010系列19(常用控件:静态文本框)
查看>>
【转】js中select的基本操作
查看>>
linux上的第一个c语言程序
查看>>
vmware实现物理机和虚拟机复制粘贴
查看>>
dom4j通过 xpath 处理xmlns
查看>>
spring集成redis
查看>>
网络抓包wireshark2
查看>>
搜搜反链暴增几十亿后,你还淡定吗?
查看>>