PHP を使用して、複数のユーザーが 1 つのアカウントに同時にログインできないようにするにはどうすればよいですか?

WBOY
リリース: 2016-10-22 00:14:09
オリジナル
2306 人が閲覧しました

変更要件: アカウントにログインした後、他のユーザーはそのアカウントに再度ログインできます。 QQ 異常ログインと同じように、現在のアカウントは強制的にオフラインになります。誰か具体的な実装アイデアを教えてください。 ?

返信内容:

変更要件: アカウントにログインした後、他のユーザーはそのアカウントに再度ログインできます。 QQ 異常ログインと同じように、現在のアカウントは強制的にオフラインになります。誰か具体的な実装アイデアを教えてください。 ?

トークンを生成してデータベースに保存し、セッションに書き込みます。操作中にセッショントークンとデータベースを比較し、異なる場合はログアウトします。

「他のユーザーがこのアカウントに再度ログインすると、現在のアカウントは強制的にオフラインになります」

これは、時間内に行うか、リフレッシュ(http リクエストを再度送信する)後に行うかです。

前者はソケットやハートビート パケットのような長い接続を必要とします。
@xfspace は、次以降の操作についても明確にしました。

ログインするたびに、Cookie検証用にランダムなトークンが生成されます。

ログインごとに生成されるトークンも異なります。
ただし、ユーザーが直接コピーした場合は無効になることに注意してください。クッキーをローカルエリアネットワークに挿入し、別のコンピュータのブラウザで使用すると、サーバー側を特定するのが困難になります。

それほど面倒ではありません。

1. 新しいトークンテーブルを作成します。
フィールド: token (トークン、通常は 8 つのランダムな文字列で十分です)、uid (このサイトのユーザー ID)、expiresIn (有効期限)

ユーザーがログインに成功すると、レコードが挿入され、ユーザーの以前のすべてのトークン データが期限切れになるか削除されます。これにより、有効なトークンが同時に 1 つだけアクティブになることが保証され、繰り返しのログインが防止されます。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!