2

iPadで使用するWebアプリを作成しています。重要な機能は、ユーザーが一度に1つのデバイスにしかログインできないことです。ユーザーがログインした場合にデータベースのフィールドを0から1に更新することで、これをすでに達成しています。

ただし、ユーザーがログアウトを忘れた場合に備えて、タイムアウト機能を用意することも重要です。PHPでこれを試してみましたが、ユーザーをログアウトさせるためにスクリプトを実行する前にページを更新する必要があるため、適切ではありませんでした。

そこで、JavaScriptを使用してクライアント側で実行してみました(30分後の単純なページリダイレクト)が、iPadでSafariを最小化すると、実行中のすべてのスクリプトが停止し、ユーザーがログアウトせずにホーム画面をクリックできるようになることを学びました。タイムアウトは機能しません。

すっごく...私はアイデアがありません...iPadのSafariで人をタイムアウトする方法はありますか?

4

1 に答える 1

3

サーバーのCRONJOB機能http://en.wikipedia.org/wiki/Cronを使用して、DB全体のログアウトチェック用のスクリプトを記述します。このようにして、ユーザークライアントを完全に問題から除外します。必要なのは、後でスクリプトで確認するタイムスタンプを使用してユーザーのアクションを監視することだけです。

たとえば、ユーザーテーブルlast_action_timeにフィールドがある場合、サイトがリロードされるたび、またはその他のアクションが実行されるたびに更新されます。time()そのフィールドに保存するだけです。また、cronjobスクリプトの場合は、last_action_time<time()-(60 * 30)のすべてのユーザーをチェックし、その場合はフィールドを1から0に更新します。

于 2012-07-09T12:12:54.973 に答える