Vue ブラウザログアウトの実装例

Vue ブラウザログアウトの実装例

プロジェクトのニーズ: インターネット上でも類似の記事をたくさん見つけましたが、それらを使用するにはいくつか問題があります。結局のところ、自分のニーズに合うようにする必要があります。ここでは vue3 を使用していますが、理論的には vue2 も使用できます。私が書いた方法は普遍的です。

これらのメソッドはすべて、 beforeunloadunloadイベントに基づいて実行されます。
以下では、2 つのイベントの紹介について初心者向けチュートリアルと MDN を検索しましたが、自分で理解することもできます。

1. beforeunload イベント

1.1、初心者向けチュートリアル:

ここに画像の説明を挿入

1.2、MDN

ここに画像の説明を挿入

2. アンロードイベント

2.1、初心者向けチュートリアル

ここに画像の説明を挿入

2.2、MDN

ここに画像の説明を挿入
MDN: 一般的に、onunload に直接値を割り当てるのではなく、window.addEventListener() を使用して unload (en-US) イベントをリッスンすることをお勧めします。

使用したソースコードは以下に掲載しています。

3. ソースコード

3.1. 方法1: HTMLページに記述できる(直接使用)

      var _beforeUnload_time = 0、_gap_time = 0;
      window.onunload = 関数 (){
          _gap_time = 新しい Date().getTime() - _beforeUnload_time;
          if(_gap_time <= 10){//ブラウザを閉じる window.mgr.signoutRedirect();//このmgrはwindowで公開したログアウトメソッドです}else{//ブラウザを更新 - chrome refresh console.log(document.domain);
              return confirm("このシステムを終了してもよろしいですか?");
          }
      };
      window.onbeforeunload = 関数 (){
          _beforeUnload_time = 新しいDate().getTime();
      };

3.2. 方法2: app.vueなどのコンポーネントに記述できる(リスニングイベント)

  データ() {
    戻る {
      ギャップ時間: 0,
      アンロード前時間: 0,
    };
  },
  メソッド: {
    //ウィンドウを閉じる前に実行する beforeunloadHandler() {
      this.beforeUnload_time = 新しい Date().getTime();
    },
    アンロードハンドラ() {
      this.gap_time = 新しい Date().getTime() - this.beforeUnload_time;
      //ウィンドウが閉じられたか更新されたかをミリ秒単位で判断します。オンラインの読み取りのほとんどは5です。
      (this.gap_time <= 10)の場合{
        mgr.signoutRedirect(); // ログアウトインターフェースは個人用ログアウトメソッドに置き換える必要があります} else {
        console.log(ドキュメント.ドメイン);
        return confirm("このシステムを終了してもよろしいですか?");
      }
    },
  },
  unmounted(){//vue は destroyed() ライフサイクルに置き換えることができますが、これも使用できます // リスナーを削除します window.removeEventListener("beforeunload", () => this.beforeunloadHandler());
    window.removeEventListener("unload", () => this.unloadHandler());
  },
  マウント() {
    // ブラウザの終了をリッスンします。window.addEventListener("beforeunload", () => this.beforeunloadHandler());
    window.addEventListener("unload", () => this.unloadHandler());
  },

参考記事:
vue がブラウザを閉じると、イベントがトリガーされ、ログアウト インターフェースが実行されます。vue はブラウザを閉じてトークンをクリアします (更新を区別します)

これで、vue でのブラウザの終了とログアウトの実装に関するこの記事は終了です。より関連性の高い vue のブラウザの終了とログアウトのコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • jsはブラウザを閉じるときにアカウントのログアウトを処理します

<<:  CSS スタイルにおける中国語フォントのフォントファミリーに対応する英語名の詳細な説明

>>:  MySQLデータベースのマスタースレーブレプリケーションの原理と機能の分析

推薦する

ファイルのダウンロードを実現する javascript Blob オブジェクト

目次例示する1. ブロブオブジェクト2. フロントエンド3. バックエンド要約する例示する最近、ファ...

JavaScript を使用したコマンドライン アプリケーションの構築

目次1. ノードをインストールする2. Commander.jsをインストールする3. JavaSc...

シングルサインオン制御を実装するためのVueの完全なコード

参考までに、Vue シングル サインオンのデモをご紹介します。詳細を知りたい方のお役に立てれば幸いで...

JavaScript のフラット配列をツリー構造に変換する例

目次バックグラウンドで10,000個のデータが失われた再帰法非再帰的方法要約するバックグラウンドで1...

WeChatミニプログラム抽選コンポーネントの使い方

WeChatコンポーネントの形式で提供されます。コンポーネント内部ではasync/awaitが使用さ...

Linux コンパイル最適化で習得しなければならないいくつかの姿勢のまとめ

01. コンパイルオプションとカーネルコンパイルLinux カーネル (英語: linux kern...

Linux で Spring Boot プロジェクトを開始および停止するためのスクリプトの例

Springboot プロジェクトを開始するには、次の 3 つの方法があります。 1. メインメソッ...

Elasticsearchツールcerebroのインストールと使用チュートリアル

Cerebro は、Elasticsearch バージョン 5.x より前の Elasticsear...

SpringBoot でマイクロサービスを構築するために Docker を使用した実際の記録を分析する

それは何ですか? Spring Boot は、Spring オープンソース組織のサブプロジェクトであ...

MySQL Installer 8.0.21 インストール チュートリアル (画像とテキスト付き)

1. 理由新しいシステムに MySQL を再インストールする必要があったので、将来詳細を忘れた場合...

HTML 基本コントロール入門_PowerNode Java アカデミー

<input> タグ<input> タグはユーザー情報を収集するために使用さ...

Centos7 での mysql 8.0.15 のインストールと設定

この記事では、参考までにMySQL 8.0.15のインストールと設定のグラフィックチュートリアルを紹...

JavaScript の instanceof メソッドの手動実装

1. instanceofの使用法instanceof演算子は、コンストラクター関数のprototy...

複数のdiv内のテーブルのtdwidth設定は同じで、揃えることができません

最近、複数のdivにあるテーブルのTDを同じ幅に調整しても、揃えることができず、幅にパターンがないこ...

MySQL に接続されている IP アドレスを表示する方法の例

具体的な方法:まずコマンドプロンプトを開きます。次に、[ mysql -u root -p ] コマ...