ホームページ >バックエンド開発 >PHPチュートリアル >12306 がコンピュータにログインしているのに、携帯電話からはログアウトしているのと同じように、この状況はどのようにして実現されるのでしょうか。

12306 がコンピュータにログインしているのに、携帯電話からはログアウトしているのと同じように、この状況はどのようにして実現されるのでしょうか。

WBOY
WBOYオリジナル
2016-08-04 09:20:572221ブラウズ

データベース コントロールを使用してユーザー ステータス ID を保存し、1 台のマシンにのみログインできるようにします

ここでのシングル サインオンとは、1 か所でログインすることを意味し、他のシステムにログインする必要はありません

これは、12306 がコンピューターにログインし、電話からログアウトしたようなものです。

返信内容:

データベース コントロールを使用してユーザー ステータス ID を保存し、1 台のマシンにのみログインできるようにします

ここでのシングル サインオンとは、1 か所でログインすることを意味し、他のシステムにログインする必要はありません

これは、12306 がコンピューターにログインし、電話からログアウトしたようなものです。

お誘いありがとうございます。固有のログイン制限。ユーザーがログインするたびに固有の ID またはトークンが生成されるように設定され、それを時間によって制限し、常に最新の有効な状態に保つことが推奨されます。

ログイン操作によりログイン トークンが生成され、データベースに保存され、古いトークン データが削除されます。これにより、クライアント ログイン アカウントが 1 つだけ存在することが保証されます。ログイントークンが無効な場合は、ログアウトしてください

session_id に従って、最新の session_id を記録します。古いセッション ID は無効です

そのアイデアは、独自のログイン制限とメッセージ プッシュを使用してリアルタイム ログアウトを実現することです。これを行う場合、一時トークンのコピーを memcache に保存し、ローカル Web サイトのコピーを新しい場所からログインするときに、memcache 上のトークンを更新し、Web サイトのローカル トークンが一貫しているかどうかを確認します。 memcache 内のログイン ポイントと一致しない場合は、古いログイン ポイントなので、削除するだけで済みます。

明確に質問していませんでした
PCが携帯電話にログインしているときにログアウトしますか、携帯電話がPCにログインしているときにログアウトしますか。または、PC でログインすると、携帯電話が次の操作を行うときにログアウトします。携帯電話でログインすると、次のセッションが PC で実行されるときにログアウトします。 2 つのうち、1 つがアクティブで、もう 1 つがパッシブである場合は、上記の答えを使用できます。パッシブの場合:
モバイル端末はバックグラウンドサービス用のサービスを確立できます。
PC端末はソケット通信を使用できます。または、ajax スケジュールされたリクエストによって完了することもできます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。