web-dev-qa-db-ja.com

ユーザーが新しいタブでリンクを開くのを停止する

安全なサイトで、ユーザーがログアウトして新しいタブでリンクを開かないようにしても問題ありませんか?

私はモバイルゲームのウェブアプリを使用しており、ユーザーは一度に1つしかプレイできません。彼らが一度に複数のゲームをプレイしようとする問題を回避するために、私は彼らが新しいタブでそれを開こうとしたときにログアウトしたいと思います。

ソーシャルメディアや銀行のウェブサイトをいくつか確認しました。これを気にし、新しいタブでリンクを開こうとしたときにサインアウトした銀行のWebサイトは1つだけでした。

更新

@fhlamarcheは私を正しい道に導き、@ Martijnが彼のコメントで示唆したことをほとんど私は行いました。

ユーザーがログインすると、GUIDをセッションに設定し、それをクライアントに返します。クライアントからの後続の各要求はGUIDを送信します。新しいタブ/ウィンドウ/ブラウザーを開くと、ゲームが再度ログインし、GUID=が更新されます。ユーザーが元のウィンドウで古いGUIDを使用してアクションを実行しようとすると、サーバーはエラーメッセージで応答します。

14
That-_-Guy__

あなたは間違った角度から問題を見ています。ユーザーは、別のブラウザーを開いたり、2つ目のデバイスを使用したりすることもできます。つまり、タブを開く(およびそれを防ぐ)アイデアやIPアドレスに依存することはできません。ソリューションはサーバー側である必要があります。それらをサインアウトすると、彼らは不愉快になるだけです。ブラウザ/デバイス/タブに関係なく同じゲームをWebサイトに表示するようにするか(ハードソリューション)、または一度に複数のゲームをプレイできないようにします(簡単なソリューション)。

60
0xFF

anyサイトは理想的ではないで、ユーザーの期待を破ります。

ユーザーがブラウザのタブを使用してインターネットをナビゲートできることを期待しているので、それを壊してはいけません。

41
DA01

Googleハングアウトには、アプリケーションと同じ要件があります。 2つのハングアウトを同時に行うことはできません。

しかし、Googleは、2番目の呼び出しが試みられたときに最初の呼び出しを切断することによってユーザーに衝撃を与えません。代わりに、2番目の呼び出しのウィンドウにエラーメッセージが表示されます。

同じアプローチをしてみませんか?

12
vivek_ganesan