LoginSignup
1
4

More than 5 years have passed since last update.

LaravelでプレーンなCookieを作る

Last updated at Posted at 2018-11-08

LaravelでCookieを作る時、勝手に暗号化してしまうのを防ぐ方法。

Controller

public function index()
{
    $value = "test";
    $cookie = \Cookie::make("TEST_COOKIE", $value, 60, '/', 'example.com', true, true);

    return response()->withCookie($cookie);
}

こんな感じで作ったCookieは、Laravelが勝手に暗号化しちゃうらしい。

暗号化されたCookieは、同一ドメイン内のLaravel以外のアプリケーションで読み取ることが出来なかった。
(もしかしたらなにか方法があるのかもしれない・・・)

Cookieに埋め込んだ情報が暗号化するほどのデータではない場合、プレーンなCookieでも問題ないと思うので、Middlewareで除外をしてあげる。

Middleware

app/Http/Middleware/EncryptCookies.php$except 配列に除外したいCookie名を入れると暗号化を防げる。


namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;

class EncryptCookies extends Middleware
{
    /**
     * The names of the cookies that should not be encrypted.
     *
     * @var array
     */
    protected $except = [
        'TEST_COOKIE'
    ];
}

Cookie名はconfigで持ちたかったけども、configの内容をMiddlewareへ渡す方法がわからなかったので一旦ベタ書き対応とした。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4