2016-10-19 9 views
1

私は非常に単純なNode.jsサーバーで作業しています。ユーザーは、平文ユーザー名/パスワード形式で認証し、サーバーはdb-grantを確認した後、または他のページへのアクセスを拒否します。Node.js:複数のセッションを扱います

各ユーザーが何をしているのかを追跡するために、私はログイン時に送信するUUIDを生成します。クライアントがサーバに何かを尋ねたり送信したりすると、このUUIDが含まれるので、サーバは誰がそのユーザであるかを知るでしょう。

質問は、これらのUUIDのライフサイクルについて、次のとおりです。

  • 私は私のローカル配列からUUIDを削除する必要がありますか?私。ユーザーが「切断」すると、明示的にログアウトするのか、または非アクティブのタイムアウト後に推測されます。スマートフォンをしばらくスタンバイ状態にすると切断されたくありません。

  • セッションがまだ生きているときにユーザーがページをリロードすると、新しいログインを避けたいと思います。同じユーザーからの接続であることを理解する方法が必要です。どのようにこれを達成しますか?

答えて

2

私はJWTを使用します。ユーザーにユーザー名とパスワードを使用してログインさせ、ユーザーの識別子(ユーザー名またはID)を含むペイロードと許可される最大非アクティブ時間(ビジネスロジックに依存します)を表す有効期限が設定されたJWTを発行します。

ユーザーは、サービスにリクエストを行うたびにこのJWTを送信し、そのトークンをデコードして、ユーザーがログアウトしたかどうかをチェックすることができます(トークンの最後のログアウト時間はユーザーのログアウト時間よりも短くなります)。ログアウト時間)。

さまざまなことを追跡できます。

セッションを使用する他の方法もあります。

+0

私が心に留めていたことですが、私はJWTを知らなかったのです!したがって、すべてのロジックはサーバー側のアプリケーションにあります(OK、クライアントはJWTを返す必要があります)。 – Mark

+0

はい、クライアントは要求ごとにJWTを送信します。 –

関連する問題