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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

セッション

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

artisan

artisanは、PHP Laravelフレームワークのコマンドの事です。 Artisanコマンドを使う事で、DBのテーブルやバンドル等を追加することができるコマンドです。

Laravel 5

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

Q&A

解決済

1回答

3053閲覧

Laravel5.2 :リクエスト間でログイン状態を維持するには? (セッションが切れてしまう)

wisdom

総合スコア18

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

セッション

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

artisan

artisanは、PHP Laravelフレームワークのコマンドの事です。 Artisanコマンドを使う事で、DBのテーブルやバンドル等を追加することができるコマンドです。

Laravel 5

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

0グッド

0クリップ

投稿2018/01/21 05:35

Laravel5.2でwebアプリケーションを開発しているのですが、
次のページまでログイン状態を保持できません。

解消方法をご教授いただけないでしょうか。宜しくお願い致します。

最終目的
laravelで、リクエスト間でログイン状態を維持したい。

問題
・新しくリクエストを送ると、新しいsessionが作られてしまい、ログイン状態を保持できない

経緯
・POSTでリクエストを送ると以下のエラーが出てしまいました。

TokenMismatchException in VerifyCsrfToken.php line 67 ```※下記の質問の回答のような、{{ csrf_field() }}の追記は行っております。 https://teratail.com/questions/15086 調べて見たところ、 ・storage/framework/sessions/配下のsessionファイルがリクエストの度に増えておりました。 ・そのため、リクエストをした際に新規にsessionファイルが作成され、ログイン状態を維持できないのでが原因と思われます。 ただ、複数のデバイスと複数のブラウザで確認をしているのですが、ランダムにsessionが切れることがあったり、なかったりするため、明確な原因の特定はできておりません。 ※また、config/session.php内の設定をcookieに変更して試してみましたが、解決できませんでした。

'driver' => env('SESSION_DRIVER', 'file')
↓↓
'driver' => env('SESSION_DRIVER', 'cookie')

**質問** ・なぜリクエストの度に新規にsessionが作成されるのでしょうか? ・リクエストの度にsessionを変えずにログイン状態を保持する方法はありますでしょうか? **環境とエラー内容は以下の通りです。**

環境
centOS 6.9
Laravel 5.2
php 5.6
mysql 5.6.38
artisanサーバー

以上の問題を解消できませんでしたのでどなたかご教授いただけないでしょうか。 足りていない情報がございましたらお教えください。宜しくお願い致します。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2018/01/21 08:43

env('SESSION_DRIVER', 'cookie') だが SESSION_DRIVER に file 設定されてたら永遠に file だよ
wisdom

2018/01/24 14:04

ご回答ありがとうございました。おっしゃる通りで、envを修正したところfileにはかかれないようになりました。ただし、リクエスト間でsessionが新規追加されているのは変わらず、改善はできませんでした。
guest

回答1

0

ベストアンサー

asahina1979さんの質問への追記通り、env関数は第一引数が、.envの内容の取得、第二引数が定義が無い場合のデフォルト値なので、file以外のドライバーを試す場合は、.envのSESSION_DRIVERをcookieやdatabaseにしてみてください。
databaseセッションドライバを利用する際は、以下のドライバの事前要件を確認してください。
Laravel 5.2 HTTPセッション
また、5.2は2016-08-26以降には全くメンテナンスされていないので、特別な事情がない限りは5.5の利用を検討してみて下さい。
Laravelのリリース日と修正期間のまとめ
CHANGELOG-5.2.md
何かしらのLaravel用のライブラリをインストールしている場合は、そのライブラリの対応バージョンも確認してみて下さい。

投稿2018/01/23 07:24

aro10

総合スコア4106

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

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

wisdom

2018/01/24 14:06

ご回答ありがとうございます。 そうだったのですね。深く調べずに触ったことのあった5.2を利用しておりました。 検討します。 envの設定の変更を行い、coockieとdatabaseをためしましたがやはりリクエストの度に新規でsessionが作られてしまうことに変わりはありませんでした。
aro10

2018/01/25 04:02

Laravelのセッションの仕組みは、クライアントのCookieに含まれるキー情報を元に、識別を行います。 (session.phpの添字cookieの値、デフォルトはlaravel_session)、そのあたりがうまくいっていないかもしれないので、検証環境を変えて試しても良いかもしれません。 あとは、LaravelのCHANGELOG等もおいかけてみてください。 https://github.com/laravel/framework/blob/5.5/CHANGELOG-5.2.md https://github.com/laravel/framework/blob/5.5/CHANGELOG-5.3.md https://github.com/laravel/framework/blob/5.5/CHANGELOG-5.4.md https://github.com/laravel/framework/blob/5.5/CHANGELOG-5.5.md
wisdom

2018/01/27 02:41

ご回答ありがとうございます。 Cokkieのキーと、laravelnのsession.phpを見比べてみます。 laravel5.5への変更も検討してみます! ご丁寧にありがとうございます。
wisdom

2018/02/12 07:52

こちらその後、5.3への変更や新しいプロジェクトで確認、コードに原因があるかもしれないと思い初期コミットで確認等試してみましたが解消ができませんでした。 ベストアンサーを指定して、一度質問を閉じさせていただきます。 詳細にご回答ありがとうございました。
aro10

2018/02/13 05:11

参考として有料ですが、Laravelのアップグレードを支援してくれるサービスもあるみたいです。 https://laravelshift.com/
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問