laravel如何发送不加密的cookie

1、cookie为什么会被加密

laravel的中间件AppHttpMiddlewareEncryptCookies默认对所有的cookie的加密了,客户端是不能读取cookie的。但有些时候客户端需要从服务器给的cookie中获取数据,这时就不能将cookie加密了

2、方法一

AppHttpMiddlewareEncryptCookies中在except中加入不加密的token即可。

1536045850(1).jpg

3、方法二

但有时候可能要做一些逻辑控制,检查某些条件比如是否是安全的IP地址,才可不加密此时可在AppProvidersAppServiceProvider中,加入代码如下:

 use Illuminate\Cookie\Middleware\EncryptCookies;
    
    public function register()
    {
        $this->app->resolving(EncryptCookies::class, function ($object) {
            // need check the ip in whitelist
            $object->disableFor('token');
        });
    }   

需要注意的

laravel的cookie操作

前提你的整个http流程一定要走完,页就是必须走到view()或Response,你写到中间中断调试,cookie是设置不上去的......(坑~~)

Route::get('cookieset', function()
{
    $foreverCookie = Cookie::forever('forever', 'Success');
    $tempCookie = Cookie::make('F5JS_2132_language', 'sc', 5);//参数格式:$name, $value, $minutes
    return Response::make()->withCookie($foreverCookie)->withCookie($tempCookie);
});
Route::get('cookietest', function()
{
    $forever = Cookie::get('forever');
    $temporary = Cookie::get('temporary');
    dd($temporary);
});

任志帆博客
请先登录后发表评论
  • 最新评论
  • 总共1条评论
任志帆博客

L君:什么鬼东西

2018-09-14 10:45:54 回复

  • v1.0- renzhifan.cn 版权所有 ICP证:京ICP备18035965号
  • 联系邮箱:zhifan6797@163.com