22

Laravelでセッションタイムアウトをチェックする方法を誰かが知っているかどうか疑問に思っていました。

セッションに特定の項目があるかどうかを確認できます。

if (Session::has('name'))
{
     $name = Session::get('name');
}

ただし、セッションの有効期限が切れているかどうかを確認することはできません。より具体的な方法でユーザーに報告できるといいですね。「セッションがタイムアウトしました。もう一度やり直してください。」

何かご意見は?

4

3 に答える 3

28

セッションクラス自体と同じロジックを使用するだけです。

if ((time() - Session::activity()) > (Config::get('session.lifetime') * 60))
{
   // Session expired
}

これを「前」フィルターに配置すると、すべてのリクエストで実行されます。

于 2013-02-04T17:27:30.790 に答える
2

なぜこれをしないのですか?

if (!Session::has('name'))
{
     $sessionTimeout = 1;
}

セッションがタイムアウトすると、名前は設定されなくなります。次に、$ sessionTimeout==1に応答するコードを記述できます。

于 2013-02-04T16:05:45.423 に答える
0

ところで、特にセッションの存続期間が必要な場合は、

これを使って:

{{ session('lifetime') }}

これを説明するとき、

これを使って:

session(['User' => $user, 'lifetime' => 3600]);
于 2019-12-03T10:26:18.933 に答える