# Cookie 管理(Cookies Management)
[Cookies](http://en.wikipedia.org/wiki/HTTP_cookie)是一个将数据存储在客户端的有效途径,这样即使用户关闭了TA的浏览器也能获取这些数据。[Phalcon\\Http\\Response\\Cookies](http://docs.iphalcon.cn/api/Phalcon_Http_Response_Cookies.html)作为全局的cookies包。 在请求执行的期间,Cookies存放于这个包里,并且在请求结束时会自动发送回给客户端。
## 基本使用(Basic Usage)
你可以在应用中任何可以访问服务的部分,通用使用“cookies”服务来设置/获取cookie 。
~~~
<?php
use Phalcon\Mvc\Controller;
class SessionController extends Controller
{
public function loginAction()
{
// 检测cookie之前有没被设置过
if ($this->cookies->has("remember-me")) {
// 获取cookie
$rememberMeCookie = $this->cookies->get("remember-me");
// 获取cookie的值
$value = $rememberMeCookie->getValue();
}
}
public function startAction()
{
$this->cookies->set(
"remember-me",
"some value",
time() + 15 * 86400
);
}
public function logoutAction()
{
$rememberMeCookie = $this->cookies->get("remember-me");
// Delete the cookie
$rememberMeCookie->delete();
}
}
~~~
## Cookie 的加密和解密(Encryption/Decryption of Cookies)
默认情况下,cookie会在返回给客户端前自动加密并且在接收到后自动解密。 在保护机制下,即使未验证的用户在客户端(浏览器)查看了cookie的内容,也无妨。 即使这样,敏感的数据还是不应该存放到cookie。
你可以通过以下方式禁用加密:
~~~
<?php
use Phalcon\Http\Response\Cookies;
$di->set(
"cookies",
function () {
$cookies = new Cookies();
$cookies->useEncryption(false);
return $cookies;
}
);
~~~
使用加密的话,必须在“crypt”服务中设置一个全局的key:
~~~
<?php
use Phalcon\Crypt;
$di->set(
"crypt",
function () {
$crypt = new Crypt();
$crypt->setKey('#1dj8$=dp?.ak//j1V$'); // 使用你自己的key!
return $crypt;
}
);
~~~
> 将未加密且包含了复杂对象结构、结果集、服务信息等等的cookie数据发送给客户端, 可能会暴露应用内部的细节给外界,从而被黑客利用、发起攻击。 如果你不想使用加密,我们强烈建议你只返回基本的cookie数据,如数字或者小串的文字。
- 简介
- 安装
- 安装(installlation)
- XAMPP下的安装
- WAMP下安装
- Nginx安装说明
- Apache安装说明
- Cherokee 安装说明
- 使用 PHP 内置 web 服务器
- Phalcon 开发工具
- Linux 系统下使用 Phalcon 开发工具
- Mac OS X 系统下使用 Phalcon 开发工具
- Windows 系统下使用 Phalcon 开发工具
- 教程
- 教程 1:让我们通过例子来学习
- 教程 2:INVO简介
- 教程 3: 保护INVO
- 教程4: 使用CRUD
- 教程5: 定制INVO
- 教程 6: Vökuró
- 教程 7:创建简单的 REST API
- 组件
- 依赖注入与服务定位器
- MVC架构
- 使用控制器
- 使用模型
- 模型关系
- 事件与事件管理器
- Behaviors
- 模型元数据
- 事务管理
- 验证数据完整性
- Workingwith Models
- Phalcon查询语言
- 缓存对象关系映射
- 对象文档映射 ODM
- 使用视图
- 视图助手
- 资源文件管理
- Volt 模版引擎
- MVC 应用
- 路由
- 调度控制器
- Micro Applications
- 使用命名空间
- 事件管理器
- Request Environmen
- 返回响应
- Cookie 管理
- 生成 URL 和 路径
- 闪存消息
- 使用 Session 存储数据
- 过滤与清理
- 上下文编码
- 验证Validation
- 表单_Forms
- 读取配置
- 分页 Pagination
- 使用缓存提高性能
- 安全
- 加密与解密 Encryption/Decryption
- 访问控制列表
- 多语言支持
- 类加载器 Class Autoloader
- 日志记录_Logging
- 注释解析器 Annotations Parser
- 命令行应用 Command Line Applications
- Images
- 队列 Queueing
- 数据库抽象层
- 国际化
- 数据库迁移
- 调试应用程序
- 单元测试
- 进阶技巧与延伸阅读
- 提高性能:下一步该做什么?
- Dependency Injection Explained
- Understanding How Phalcon Applications Work
- Api
- Abstract class Phalcon\Acl