laravel中使用cookie详解

前面的话:
	Laravel会加密所有已创建的cookie信息,并附加上授权码,当客户端擅自修改cookie信息时,该cookie将被废弃,从而保证安全性。
1.Cookie::make() 添加一个新的cookie 、Cookie::forever() 创建一个永不过期的cookie键值、Cookie::get() 获取一个指定的cookie值
Route::get('cookieset', function()
{
    $foreverCookie = Cookie::forever('forever', 'Success');
    $tempCookie = Cookie::make('temporary', 'Victory', 5);
    return Response::make()->withCookie($foreverCookie)->withCookie($tempCookie);
});


Route::get('cookietest', function()
{
     $forever = Cookie::get('forever');
     $temporary = Cookie::get('temporary');
     return View::make('cookietest', array('forever' => $forever, 'temporary' => $temporary, 'variableTest' => 'works'));
});

注意:

laravel5.2使用make有点问题
需要使用是可以的
Cookie::queue('GobackUrl', $url, 30);
有些时候,你想设置一个 Cookie 是不加密的,例如想用来跟 JS 交互,JS 可以直接读取到明文,可是以下面的代码设置后:
解决方案#
	如你cookie 键值为cookie_for_js的需要与前台交互
 	添加到 App\Http\Middleware\EncryptCookies 的 排除名单 中:
<?php

namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;

class EncryptCookies extends BaseEncrypter
{
    /**
     * The names of the cookies that should not be encrypted.
     *
     * @var array
     */
    protected $except = [
        'cookie_for_js', 
    ];
}
对了,如果要给 JS 读取的话,要把 cookie 的 http only 属性去掉,请使用以下代码:
Cookie::queue('cookie_for_js', 'can you read me?', $minutes = 99999999, $path = null, $domain = null, $secure = false, $httpOnly = false);



2、Cookie存储数组:
Route::get('cookieset', function()
{
    $user_info = array('name'=>'good','age'=>12);
    $user = Cookie::make('user',$user_info,30);
    return Response::make()->withCookie($user);
});

Route::get('cookietest', function()
{
    dd(Cookie::get('user'));
});



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值