VUEトークンの無効化プロセスの詳細な説明

VUEトークンの無効化プロセスの詳細な説明

ターゲット

トークンの有効期限切れシナリオの処理

トークンは、ユーザーの重要なトークン情報であるため、長期間有効ではありません。通常、有効期限があります(バックエンドによって期限切れになる時間が決定されます)。有効期限を過ぎると、現在のトークンはデータを要求するユーザー識別として使用できなくなります。このとき、追加の有効期限処理を実行する必要があります。

思考分析

ここに画像の説明を挿入

バックエンド: ユーザーから特定のインターフェースへのアクセス要求を受信した場合、現在のトークンが無効かどうかを確認します。トークンが無効な場合は、合意されたステータス コード 10002 をフロントエンドに返します。

フロントエンド: レスポンスインターセプターで、インターフェースの戻り値を分析します。ステータスコードが 10002 の場合は、トークン無効化操作を実行します。

コード着陸

**src/utils/request.js**で、レスポンスインターセプターのエラーを処理するときのカスタムロジックを追加します。

ページジャンプにはルーティングが必要なので、まず

// ルーティングをインポートする import router from '@/router'

コード

// レスポンスインターセプター内 // 1. バックエンドから返されたデータに基づいて操作が成功したかどうかを判断し、失敗した場合はエラーを報告します // 2. 成功した場合は、有効なデータのみを返します service.interceptors.response.use(
  レスポンス => {
    // バックエンドとフロントエンド間の合意: success=true はリクエストが成功したことを示します if (response.data.success) {
      応答データを返す
    } それ以外 {
      // 成功が偽の場合、ビジネスは間違っており、拒否が直接トリガーされます
      // catch ブランチによってキャプチャされます return Promise.reject(new Error(response.data.message))
    }
  },
  非同期エラー => {
    console.log('リクエストエラー', error)
    (エラー応答データコード === 10002) の場合 {
      console.log('トークンの有効期限が切れました')
      store.dispatch('user/logout') を待機します。
      // .vue -- this.$route.fullPath
      // .js -- router.currentRoute.fullPath

      router.push('/login?return_url=' + encodeURIComponent(router.currentRoute.fullPath))
    }
    console.dir(エラー)
    Promise.reject(error) を返します。
  }
)

上記のソリューションは、バックエンド主導のソリューションです。フロントエンドは、ビジネス処理を行うためにエラーコードを取得するだけで済みます。このソリューションは、最も一般的に使用され、最も安全なソリューションでもあります。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue はトークンの有効期限が切れると自動的にログインページにジャンプする機能を実装します
  • Vue はユーザーのログイン状態を維持します (さまざまなトークン保存方法)
  • Vueプロジェクトでのトークン検証ログイン(フロントエンド部分)
  • Vueはユーザーログインとトークン検証を実装します
  • VUEはトークンログイン認証を実装

<<:  優れた Web UI ライブラリ/フレームワーク 10 選

>>:  Docker+jenkins+python3環境を使用して非常に詳細なチュートリアルを構築する

推薦する

Nginx ロードバランシングの設定方法

目次Nginx 負荷分散構成Nginx 負荷分散戦略ポーリング(デフォルト)重さip_ハッシュ公正(...

HTML_PowerNode 入門 Java アカデミー

HTMLとは何ですか? HTML は Web ページを記述するために使用される言語です。 HTML ...

JavaScriptはキュー構造プロセスを実現する

目次1. キューを理解する2. カプセル化キュー3. 太鼓をたたいて花を渡す場合1. キューを理解す...

VMware15 の CentOS7 インストールの詳細なプロセスとよくある問題 (画像とテキスト)

1. インストールパッケージの準備VMware-player-15.0.4-12990004、非商...

VueでTypescriptの設定手順を使用する

目次1. TypeScriptが古いVueプロジェクトに導入されるVue+Typescript プロ...

Nginx でバージョン番号を隠す方法

Nginx はバージョン番号を非表示にする実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために...

linxu での Svn ワンクリック インストール シェル スクリプトの詳細な説明

#!/bin/bash #SVNをダウンロード yum -y サブバージョンをインストールします ...

nginx proxy_cache バッチキャッシュクリアスクリプトの紹介

前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...

Dockerコンテナを更新、パッケージ化、Alibaba Cloudにアップロードする方法

今回は、実行中のコンテナをイメージにパッケージ化して Alibaba Cloud にアップロードし、...

優れたウェブフロントエンドデザインの指標

Web ページのアクセシビリティは、フロントエンドでのみ評価および実装できるもののようです。ユーザビ...

Excel ファイルを MySQL データベースにインポートする方法

この記事では、ExcelファイルをMySQLデータベースにインポートする方法を参考までに紹介します。...

JavaScriptはeコマースプラットフォームの製品詳細を実装します

この記事では、電子商取引プラットフォームで商品の詳細を表示する一般的な例を紹介します。たとえば、ある...

Webデザインの経験: Webコードを効率的に書く

本来、この第 7 章では、デザインにおけるレイヤーと空間テクニックについて深く議論するはずです。しか...

Linuxシステムにおけるキー認証に基づくSSHサービスのプロセス

ご存知のとおり、SSH は現在、リモート ログイン セッションやその他のネットワーク サービスにセキ...

非常に便利な CSS 開発ツール 8 つを紹介

CSS3 パターン ギャラリーこの CSS3 パターン ライブラリには、純粋な CSS3 を使用して...