質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

2回答

10087閲覧

laravel5 セッションタイムアウトを任意で指定したい

退会済みユーザー

退会済みユーザー

総合スコア0

Cookie

HTTPにおけるCookieとは、クライアントのウェブブラウザ上に保存された一時的なデータを指します。クライアント側のJavaScriptでも、サーバー側のHTTPヘッダーでもクッキーの読み書き・修正・削除が可能です。

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

2クリップ

投稿2016/09/20 05:57

laravel5のセッションはsession.phpのほうで120分で切れるようになっていますが、これをコントローラー側などで操作できないでしょうか?所謂laravelのAuth機能にあるrememberのようなものを実装したいです。セッションはデフォルトではcookieに保存されるようになっていると思うので、どちらかというとcookieのタイムアウトをコントローラー側で実行する形になると思うのですが、ドキュメントなどを見ても方法がわかりませんでした。もし何か知っている方がいらしたらご助力お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ご存知かもしれませんが、最低5年間Cookieが保持されるforeverメソッドがあります。
remember meとして使うのであれば開発の際のポリシーにもよりますがこれでもOKだと思います。

php

1// セット 2cookie()->forever('key', 'val'); 3// 削除 4cookie()->forget('key');

実際に使われる際はArchsted様のご回答のようにレスポンスにくっつけてあげてください。参考記事

投稿2016/09/20 07:28

編集2016/09/20 07:51
natady

総合スコア606

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/20 07:58

回答ありがとうございます。上記の方法はすでに実在するcookieにも有効でしょうか?
natady

2016/09/20 08:07

可能だと思います。(未検証です。すみません。) まずは普通に上書きしてみて、ダメだったら一旦`forget()`してから再度セットしてみてください。
退会済みユーザー

退会済みユーザー

2016/09/21 01:12

試したのですができませんでした。最終的にはreturn redirectで返したいのですが、たぶんそれだとできないみたいです・・
guest

0

ベストアンサー

何らかのcookieを有効期限を指定して作る方法、ということでしたら
コントローラの最後でresponseを返す時に、cookieを付与するメソッドがあります。

PHP

1return response() 2 ->view('index') // 仮にビューを返すとして 3 ->cookie($name, $value, $minutes, $path, $domain, $secure, $httpOnly);

$minutesにあたる3番目の引数を調整すれば、cookieの有効期限を調整できます。

投稿2016/09/20 06:47

Archsted

総合スコア452

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/09/20 06:57

なるほど、付加の時に変えられるんですね。すでに作られているcookieの有効期限を変える方法とかってないんでしょうか?
Archsted

2016/09/20 07:06

既に作ったcookieと同じname, path, domainを指定すれば上書きできると思います。 こちらは手元では試せていませんが・・・
Archsted

2016/09/20 07:44

あとは、config/session.php に記載した内容をControllerから動的に変更したい、という事なら Config::set('session.lifetime', 90); のような形で操作できます。 また長時間保持させたいというなら、natadyさんが仰っているforeverメソッドがよろしいかと思います。
退会済みユーザー

退会済みユーザー

2016/09/20 08:01

回答ありがとうございます。Config::set('session.lifetime', 90);の件ですが、エラーが出てしましました。上のほうにuse Config;を追加してみたら動いたのですが、特に設定が反映された形跡はなかったです。何か間違っているでしょうか?
Archsted

2016/09/20 08:19

これはsession.phpに記載されたクッキー(初期だとlaravel_session)の有効期限を一時的に変更するやり方で、それ以外で明示的に作成したcookieには無関係という事を断りつつ。 自分の環境ではlaravel_sessionクッキーの有効期限が90分後に変更されましたが、変わっていませんでしたか? 変更したいcookieはlaravel_sessionでは無いという事であれば、Config::setの件は忘れて下さい。
退会済みユーザー

退会済みユーザー

2016/09/20 08:37

直したいのはlaravel_sessionで間違いないですね。コントローラーのメゾット内に直接書いたんですけど反応ないです・・・
Archsted

2016/09/20 11:20

コントローラのルーティングに「web」ミドルウェアが当たっていない場合、あててみて下さい。これでどうでしょうか。 Route::group(['middleware' => 'web'], function () { Route::get('/', 'TestsController@test'); });
退会済みユーザー

退会済みユーザー

2016/09/21 00:41

たぶんその方法って5.2からだと思うのですが、自分開発環境が5.1なのでできそうにないです。すみません。
Archsted

2016/09/21 01:32

5.1ならその対応は不要ですね。lifetime が lifeTime になっていたりはしませんよね。 setした後に、getで値を呼んでみて値が変わっていればいいのですが Config::set('session.lifetime', 90); dd(Config::get('session.lifetime')); // 90?120? お力になれず申し訳ありません。
退会済みユーザー

退会済みユーザー

2016/09/21 01:47

ddで確認してみたところ値変わってました!先日は極端に120から1とかにして1分後にcookieが切れるか確認していたので気づきませんでした、すみません。1の場合でも値はちゃんと1になってるんですが動作はなぜかしないようです。逆に1から120の場合は成功しました。時間を減少させる上手く動作しないみたいです、ここら辺は少し調べてみることにします。長々とお付き合いいただきありがとうございました。
Archsted

2016/09/21 01:51

ビシっとした回答が出せず、長々とすいませんでした。 あと、Laravelはバージョンによって微妙に機能や記載場所が異なる事があるので、今後は質問の中でお使いのバージョンを載せていただくと助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問