# 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