內容目录上一个主题下一个主题生成 URL 和 路径(Generating URLs and Paths) > 本页 |
Cookie 管理(Cookies Management)¶Cookies 是一个将数据存储在客户端的有效途径,这样即使用户关闭了TA的浏览器也能获取这些数据。 Phalcon\Http\Response\Cookies 作为全局的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
$rememberMe = $this->cookies->get('remember-me');
// 获取cookie的值
$value = $rememberMe->getValue();
}
}
public function startAction()
{
$this->cookies->set('remember-me', 'some value', time() + 15 * 86400);
}
public function logoutAction()
{
// Delete the cookie
$this->cookies->get('remember-me')->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;
});
|