1

フォーム認証のあるWebサイトがあります。

1)ユーザーは、ログインを維持するかどうかを選択してログインします。

2)サーバーはトークンを生成し、それをデータベースに保存して、トークンCookieをブラウザに送信します。

ユーザーがログインを維持しないことを選択した場合、ブラウザを閉じるとトークンCookieは期限切れになり、ユーザーがログインを維持することを選択した場合、トークンCookieはログインしてから1年後に期限切れになることに注意してください。

3)ユーザーがログアウトすると、サーバーはデータベースに保存されているトークンを非アクティブ化し、ブラウザーでトークンCookieを削除します。

問題は、ユーザーがログインを維持しないことを選択した場合、ブラウザーを閉じると、トークンCookieは期限切れになりますが、データベースに保存されているトークンは非アクティブ化されません。サーバーは、ユーザーがブラウザーを閉じるかどうかを認識しません。

データベースで未使用のトークンを非アクティブ化するにはどうすればよいですか?

4

1 に答える 1

0

ログインの詳細を記憶するためだけにサーバー側でセッション全体を永続化することは一般的ではありません。Facebook/Google の設計に従うことをお勧めします。ユーザーがブラウザに「彼を記憶」させたい場合は、そのユーザーの最後の有効なアクセス トークンとしてユーザー テーブルに保持される、ランダムで安全な「アクセス トークン」Cookie を生成します。次に、ブラウザーが Web サイトに再度アクセスすると、その Cookie が送信され、サーバーは既存の (有効な) アクセス トークンのいずれかと一致するかどうかを確認して、ユーザーをログインさせることができます。

于 2012-11-26T06:24:58.163 に答える