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データベースのマスタースレーブレプリケーションの原理と機能の分析

推薦する

Centos7.4 サーバーへの Apache のインストールとインストール プロセス中に発生した問題の解決策

この記事では、CentOS 7.4 サーバーに Apache をインストールする方法と、インストール...

nginx プロキシ サーバーで双方向証明書検証を構成する方法

証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...

IE環境では、divの高さはフォントの高さよりも大きくなければならないと規定されています。

コードをコピーコードは次のとおりです。 <div class="content&qu...

CentOS7 システムでスワップを増やす方法の例

序文スワップは、ディスク上にある「仮想メモリ」の一部である特殊なファイル (またはパーティション) ...

Docker MySQLコンテナデータベースへの変更が有効にならない問題を解決する

公式の MySQL イメージを使用するには、構成ファイル、DB データ ファイル ディレクトリなどの...

Linuxのlocateコマンドの使い方

01. コマンドの概要実際には、locate コマンドは find -name の別の書き方ですが、...

MySQLにインデックスを追加しても効果がないいくつかの状況について簡単に説明します。

インデックスを追加すると、クエリの効率が向上します。インデックスを追加するということは、ドキュメント...

HTML 背景画像と背景色_PowerNode Java アカデミー

1. HTML 画像 <img> 1. <img> タグとその src 属性...

テーブルはセルとimg画像を結合してtd HTML全体を埋めます

ソースコード(一部のクラスは削除されています):コードをコピーコードは次のとおりです。 <テー...

Docker コンテナのネットワーク設定によく使われるコマンドの詳しい説明

基本的なネットワーク構成Docker はイメージに基づいて複数のコンテナを「開く」ことができ、各コン...

HTMLはシンプルで美しいログインページを作成します

まずは見てみましょう。 HTML ソースコード: XML/HTML コードコンテンツをクリップボード...

mysql 5.7.18 winx64 無料インストール設定方法

1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...

JavaScript が Jingdong の虫眼鏡の特殊効果を模倣

この記事では、Jingdong虫眼鏡を模倣したJavaScriptの具体的なコードを参考までに共有し...

クリーンなコードのための Web デザインの 12 の法則 [グラフィック]

美しいコードは美しい Web サイトの基礎です。優れた CSS は、同様に優れた HTML の上にの...

MySqlは指定されたユーザーのデータベースビュークエリ権限を設定します

1. 新しいユーザーを作成します。 1. SQL ステートメントを実行して新しいものを作成します (...