ユーザーがブラウザー A を使用して Web サイトにログインし、「remember me」をチェックしてから、「remember me」を使用してブラウザー B にログインすると、ブラウザー間でユーザーを記憶する Cookie を使用して「remember me」システムを実装しようとしています。 、使用するブラウザに関係なく、引き続き自動的にログインされます。(ブラウザ B で「remember me」をチェックしても、ブラウザ A での永続的なログインは中断されません)。
これを行うために、複数のキーをユーザー ID と一緒に保存できるようにデータベースをセットアップしました。ユーザーが私の Web サイトにログオンすると、Cookie の値がチェックされます。その値がデータベースで見つかった場合、ユーザーに新しい Cookie が割り当てられ、データベース内のその Cookie キー エントリが更新されて一致します。他のブラウザのログインの永続性が影響を受けないように、他のキーはそのままにしておきます。ユーザーが手動でログアウトすると、Cookie がチェックされ、データベース内の対応するエントリが削除されてから、Cookie が削除されます。
ユーザーが自分の Cookie を手動で削除すると、問題が発生します。ユーザーがこれを行った場合、データベース内の対応するエントリを削除する方法がありません。それは私のデータベースの永続的なエントリになるだけです。これは、クロスブラウザーの「remember me」をサポートしようとしていないときは問題ではありませんでしたが、複数の Cookie キーを保存できるようにしたことで問題になりました。
これを修正/回避する方法はありますか?
永続的なログインに関する情報は山ほどありますが、ブラウザ間の永続的なログインはカバーされていないようです。(また、私のアプローチとセキュリティの問題について自由に批判してください。ユーザーごとに1つの「remember me」のみを許可していた方が安全に見えましたが、ブラウザー間での永続的なログインはユーザーが望む機能のようです).
MySQLとPHPを使用しています。