Laravelのログイン時間が無効になるという一般的な問題を解決する方法

王林
リリース: 2024-03-06 21:24:04
オリジナル
587 人が閲覧しました

Laravelのログイン時間が無効になるという一般的な問題を解決する方法

Laravel ログイン時の失敗という一般的な問題の解決方法

Laravel を使用して Web アプリケーションを開発する場合、ログイン認証は非常に重要な機能です。 。ただし、ログイン後、長時間操作をしないと自動的にログアウトしたり、認証に失敗したりする場合があります。この問題は比較的よくある問題ですが、セッション時間の設定による解決方法と具体的なコード例を紹介します。

1. セッションの有効期限を設定する

Laravel では、セッションの有効期限はデフォルトで 2 時間です。 config/session.php ファイルの lifetime オプションを変更することで、セッションの有効期限を設定できます。たとえば、セッションの有効期限を 1 日に設定します:

'lifetime' => 1440
ログイン後にコピー

2. 記憶する機能を使用する

セッションの有効期限を設定するだけでなく、「記憶する」機能を使用することもできます。 Laravelが提供する機能で、ログインステータスの有効期限を延長します。ユーザーが「Remember Me」オプションをチェックすると、長期有効なトークンが生成され、ユーザーは長期間操作しなくてもログインしたままにすることができます。ログイン認証中に、Auth::attempt() メソッドを使用して、「私を記憶する」を設定できます:

if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
    // 登录成功
}
ログイン後にコピー

3. セッションを定期的に更新します

別の解決策は、タイミングを合わせてセッションを更新することです。つまり、ユーザーがページを操作または訪問するたびにセッションの最終アクティビティ時刻が更新され、セッションの有効期限が延長されます。この機能はミドルウェアによって実現できます。まず、RefreshUserActivity という名前のミドルウェアを作成します:

php artisan make:middleware RefreshUserActivity
ログイン後にコピー

次に、ミドルウェア内のセッションの最終アクティビティ時刻を更新します:

public function handle($request, Closure $next)
{
    if (Auth::check()) {
        Auth::user()->updateLastActivityTime();
    }

    return $next($request);
}
ログイン後にコピー

最後に、AppHttpKernel にこれを登録します。 php ファイル内のミドルウェア:

'web' => [
    // other middleware...
    AppHttpMiddlewareRefreshUserActivity::class,
],
ログイン後にコピー

上記の 3 つの方法により、Laravel のログイン時の失敗という一般的な問題を効果的に解決できます。適切なセッション有効期限を設定したり、「記憶」機能を使用したり、セッションを定期的に更新したりすると、ユーザーは長時間操作しない場合でもログインしたままにすることができ、ユーザー エクスペリエンスとシステム セキュリティが向上します。

以上がLaravelのログイン時間が無効になるという一般的な問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート