6
コンピューターをスリープ状態にしたユーザーをWebサイトからログアウトさせる
これは奇妙なものです。私たちはLaravelのWebサイトを持っており、このサイトにはユーザーごとにタイマーがあり、起動する前に15分間非アクティブになります。 これは、reactコンポーネントのページにあるタイマーを介して行いますが、期待どおりに機能しますが、今では新しい問題があります。ユーザーがログインしてラップトップのふたを閉じると、Webサイトはそれらを起動するはずです。銀行がこれを行い、学校や大学がこれを行い、政府機関もこれを行います。したがって、それは可能です。 laravel-websocketsライブラリとEcho を使用して、Webソケットを使用します。私が見たいのは: ラップトップを閉じると、ログイン画面が表示されます。したがって、次にラップトップを開いてログインすると、ログイン画面にブラウザが表示されます。それはそれほど迅速に発生する必要はありませんが、基本的にページを更新するように指示する何かをフロントエンドに送信する方法が必要です。セッションが強制終了されると、15分のlaravelでセッションライフタイムを設定します。 一部の人々は他の同様の質問で提案しました: カスタムWebソケットハンドラーを作成するには (ブラウザの)セッションCookieをバックエンドのユーザーCookieと比較します。 フロントエンドでタイマーを実行するには(ラップトップの蓋を閉じるとタイマーが停止します) 最も人気のあるものは、Webソケットを使用していて、ユーザーが切断してから起動するのをリッスンしていますが、これで問題ありませんが、一時停止しているブラウザーにリクエストを送信してから起動するにはどうすればよいでしょうか。 requestIdleCallback()を見つけましたが、サイトにすでにハートビートタイマーがある場合は、これが必要だとは思いません。また、すべてのブラウザで機能するわけではありません。 私はこれを達成する方法についてここで非常に迷っています、私が与えることができる例は次のとおりです: 銀行にログインし、コンピューターをスリープ状態にして、15〜20分待ってからコンピューターを起動し、ログインして、銀行にログイン画面が表示されることを確認します。それが私が欲しいものです。しかし、私はそれを達成する方法を知りません。 バックエンドから「スリープ中」のブラウザにイベントを送信することはできません。はい、これはバックエンドのソリューションでなければなりませんが、フロントエンドを更新して、ラップトップを再起動したときにログアウト画面に表示されるようにする方法を教えてください。またはコンピュータ?