シングルページアプリケーションは初めてです。私にとって大きな問題の 1 つは、アプリケーションを保護する方法です。フロントエンドで React を使用し、バックエンドで Express + mongodb を使用しています。
私の古い Web サイトでは、認証を行うためにセッションを使用しています。セッションがタイムアウトした場合、ユーザーをログイン ページにリダイレクトさせることができます。また、ユーザーが当社の Web サイトで何らかのアクションを実行し続けている場合、そのセッションは期限切れになりません。
しかし今、私は JWT を使用して承認を行っています。トークンは 1 分で期限切れになる場合があり、その後、ユーザーは再度ログインする必要があります。
私の理解では、1つの方法は「すべてのリクエスト/レスポンスでトークンを再送信すると、各リクエスト/レスポンスに新しいトークンが含まれます」です。しかし、これはJWTの正しい使い方ではないと思います。
だから私の質問は:
- ユーザーがまだ Web アプリで作業している場合、ユーザーの再ログインを回避する正しい方法は何ですか?
- トークンをデータベース (mongodb) に保存する必要がありますか?
- トークンを localStorage に保存すると、誰もがブラウザーからトークンを借りて、トークンをクライアントにコピーできます。それを避ける方法は?