Laravel を本番にデプロイするにあたって意外と忘れがちな点として、セッションの Cookie に Secure (httpsのみで使用可能にするオプション) をよく付け忘れるというものがある。
Laravel 5.4 デフォルトの config/session.php
を利用している場合、 .env
に
1 |
SESSION_SECURE_COOKIE=true |
を追加すれば良い。
なお、このオプションは5.3.10以降でデフォルト値として env()
が使われるようになっているのでそれ以前の状態で初期化しているプロジェクトでは必要に応じて config/session.php
の secure
の値を変えるとよい。(5.4同様にenvで出来るようにしておけば良いと思う)
なお、言うまでもなくこのオプションを有効化するとセッションはhttpsのみでしか読めなくなるので別途常にhttpsへリダイレクトする手段を用意しておく必要がある。(サーバーミドルウェアかLaravelのミドルウェアで行えばいいだろう。)
ちなみに、自前で Cookie をLaravel内で使用する際は、cookie
の第6引数に同様に config()
など で Secure の仕様有無を指定すればいい。(しよう)
(参考:cookie()
の引数定義)
1 |
function cookie($name = null, $value = null, $minutes = 0, $path = null, $domain = null, $secure = false, $httpOnly = true) |