Laravel ログイン時の失敗という一般的な問題の解決方法
Laravel を使用して Web アプリケーションを開発する場合、ログイン認証は非常に重要な機能です。 。ただし、ログイン後、長時間操作をしないと自動的にログアウトしたり、認証に失敗したりする場合があります。この問題は比較的よくある問題ですが、セッション時間の設定による解決方法と具体的なコード例を紹介します。
Laravel では、セッションの有効期限はデフォルトで 2 時間です。 config/session.php
ファイルの lifetime
オプションを変更することで、セッションの有効期限を設定できます。たとえば、セッションの有効期限を 1 日に設定します:
'lifetime' => 1440
セッションの有効期限を設定するだけでなく、「記憶する」機能を使用することもできます。 Laravelが提供する機能で、ログインステータスの有効期限を延長します。ユーザーが「Remember Me」オプションをチェックすると、長期有効なトークンが生成され、ユーザーは長期間操作しなくてもログインしたままにすることができます。ログイン認証中に、Auth::attempt()
メソッドを使用して、「私を記憶する」を設定できます:
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) { // 登录成功 }
別の解決策は、タイミングを合わせてセッションを更新することです。つまり、ユーザーがページを操作または訪問するたびにセッションの最終アクティビティ時刻が更新され、セッションの有効期限が延長されます。この機能はミドルウェアによって実現できます。まず、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 サイトの他の関連記事を参照してください。