ホームページ >ウェブフロントエンド >jsチュートリアル >セッションの有効期限が切れました!!

セッションの有効期限が切れました!!

Susan Sarandon
Susan Sarandonオリジナル
2024-10-29 18:31:29972ブラウズ

Your Session has Expired !!

今日は、特にプロジェクトで NextAuth.js を使用する場合の「セッション有効期限」の概念について話します。混乱のないように、シンプルでフレンドリーな言葉で理解してください。

それでは、まず「セッションの有効期限が切れました」エラーの意味を理解しましょう。これは

認証関連のエラーで、ユーザーのログイン セッションが終了したときに表示されます。たとえば、Web サイトまたはアプリにログインし、しばらく使用した後、しばらく放置したとします。戻ってくると、画面に「セッションが期限切れになりました。再度ログインしてください。」というメッセージが表示されました。つまり、以前にアプリへのアクセスを許可した権限の有効期限が切れたため、再度認証するには再ログインする必要があります。 理解するための例: 想像してみてください。あなたはショッピングモールにいて、警備員が入場用の

訪問者カード
を渡しました。ビジター カードが有効になった瞬間から、モール内を歩き回ったり、ショッピングをしたり、映画を見たりすることができます。ただし、ビジターカードの有効期限が 1 時間のみで、1 時間を超えた場合は、再度退室するか警備員の許可を得る必要があります。まさにこのように、セッションは

一時的な許可

でもあり、期限切れになる可能性があります。

NextAuth セッションはどのように機能しますか? ここで NextAuth.js を実装すると、そこにもいくつかのルールがあります。ユーザーがログインすると、NextAuth は JWT (JSON Web Tokens)

または
セッション Cookie

を使用してユーザーの ID を追跡します。

JWT

は、ユーザーの資格情報をエンコードした後に送信されるトークンであり、ユーザーが有効かどうかを確認するためにすべてのリクエストとともに送信されます。 セッション Cookie はブラウザに保存され、バックエンドはこれを通じてどのユーザーが現在ログインしているかを認識します。 ただし、有効期限

があり、
    設定
  • で設定できます。いいね: ここでの maxAge は、セッションが 30 分間だけアクティブであることを意味します。 30 分後にユーザーが何らかのアクション (ページの更新やリクエストなど) を実行すると、セッションが期限切れになり、ユーザーは再度ログインする必要があります。
  • セッションの期限切れを回避する方法
    サイレント更新:

    ユーザーが毎回手動でログインする必要がないように、バックグラウンドでセッションをサイレントに更新する

    リフレッシュ トークン
    を実装できます。
  1. たとえば、NextAuth では、セッション ポーリング を実行して、セッションが自動的に更新されるようにすることができます。

ログイン状態を維持: 一部のアプリでは、セッションの有効期限を延長する「ログイン状態を維持」のオプションがユーザーに提供されます。これは、トークン ローテーション
を使用して行うことができ、リクエストごとに新しいトークンが取得されます。

export const authOptions = {
  session: {
    strategy: "jwt", // JWT ya session-based approach
    maxAge: 30 * 60, // 30 minutes ka session timeout
  },
  // baaki authentication providers yahan mention karte hain
}
  1. 自動ログアウト メカニズム: 場合によっては、セキュリティ上の理由により、アプリが意図的にセッションを早期に期限切れにすることがあります。銀行アプリと同様に、しばらく非アクティブな場合、セッションがログアウトされることがわかります。高度なセキュリティを維持したい場合は、これを NextAuth 設定 に追加することもできます。

    アプリにおける実際のシナリオ:
  2. あなたは
  3. e コマース アプリ

    を利用していて、いくつかの商品をカートに追加していると想像してください。セッションが切れた場合は再度ログインしますが、カート内の商品はそのまま残ります。これは、カートのデータが ローカル ストレージ に保存されている可能性があるため可能です。ただし、電子メールや銀行アプリなどの一部の機密性の高いアプリでは、セッションの有効期限が切れたときにユーザーは強制的にログアウトする必要があります皆さん、これがセッションの有効期限の完全な基礎であり、NextAuth.js がプロジェクト内でそれを処理する方法です。この概念は最初は混乱するように思えるかもしれませんが、現実の世界で実装すると、すべてが徐々に明らかになります。ご不明な点がございましたら、または特定の部分について詳しく知りたい場合は、お気軽にお問い合わせください。 ?

以上がセッションの有効期限が切れました!!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。