序文以前、Vue の研究では、ユーザーログインモジュールの機能は、ルーティングナビゲーションガード制御を通じて実現されていました。今、プロジェクトを再度行う場合、同じ機能を実現するために、ルーティングナビゲーションガードを Vue で構成する必要があります。ここでは、実装プロセスを記録し、まとめます (この記事は Vue2.x に基づいて実装されています) ヒント:以下はこの記事の主な内容です。以下のケースを参考にしてください。 1. ルーティングナビゲーションガードを設定する1. グローバルナビゲーションガードプロジェクトにバックエンドしかない場合は、Vue でグローバル ナビゲーション ガードを設定できます。グローバル ルーティング ナビゲーション ガードを設定すると、プロジェクトが開始されている限り、ユーザーはログインしていない場合はログイン ページにのみジャンプでき、他のインターフェイスにジャンプすることはできません。 router.beforeEach((to, from, next) => { // ログインインターフェースへのアクセスの場合は直接許可します if (to.path === '/login') return next() //ユーザーページトークン情報を取得する let token = window.sessionStorage.getItem('token') //トークンデータがnullの場合は、指定されたパスにジャンプします。if (!token) return next("/login") 次() }) パラメータの説明:
2. ローカルナビゲーションガードプロジェクト開発では、フロントエンドとバックエンドの両方を同時に開発する必要がある状況もあります。このとき、フロントエンドのインターフェースはユーザーに表示する必要があり、ユーザーはログインしていなくてもアクセスできるため、ルーティングナビゲーションガードをグローバルに設定することはできません。そのため、ルーティングナビゲーションガードはバックエンドのパスのみをインターセプトします。 ルート ナビゲーション ガードは引き続き index.js フォルダーで構成されますが、今回は単一のコンポーネントに対して構成されます。 たとえば、私のプロジェクトでは、Welcome コンポーネントはバックグラウンド コンポーネントです。このコンポーネントのルーティング ナビゲーション ガードを構成するには、まず、単一コンポーネント ナビゲーション ガードの構成で、 作者は以前、ログイン コンポーネントでルーティング ナビゲーション ガードを設定しましたが、機能しませんでした。今後このようなミスをしないように、ここに記録しておきます。コンポーネントに次のコードを追加するだけです。 // ルートナビゲーションガードを定義する beforeEnter(to, from, next) { //ユーザーページトークン情報を取得する let token = window.sessionStorage.getItem('token') //トークンデータがnullの場合は、指定されたパスにジャンプします。if (!token) return next("/login") 次() } ローカル ナビゲーション ガードのパラメータは、グローバル構成のパラメータと一致しています。 2. ユーザーログインここではフロントエンド コードのみを示します。バックエンド コードの書き方は人それぞれ異なるため、ここでは示しません。 1. axios の設定プロジェクト内のコールバック地獄の問題を回避するために、ここでaxiosプラグインをインポートし、main.jsファイルで事前にaxiosを設定しました。 /* axios パッケージをインポート */ 'axios' から axios をインポートします /* axios のリクエストルートディレクトリを設定します*/ axios.defaults.baseURL = 'http://localhost:8089/' /* vue オブジェクトにグローバル オブジェクトを追加し、$http オブジェクトを使用して Ajax リクエストを送信します */ Vue.prototype.$http = axios グローバル構成は main.js ファイルで実行されるため、設定されたリクエスト ルート ディレクトリを表す 2. ユーザーログインコード// ログインボタンがクリックされたら、バックグラウンドにデータを送信します login() { this.$refs.loginFormRef.validate(非同期有効 => { if(!valid) 戻り値 const {data: result} = this.$http.post("/user/login",this.loginForm) を待機します。 // 返されたパラメータのステータス コードが 200 でない場合は、ログインに失敗したことを意味します。if(result.status !== 200) return this.$message.error("User login failed") this.$message.success("ユーザーのログインに成功しました") //ログインが成功したら、トークン情報をセッションウィンドウに保存します。sessionStorage.setItem('token',result.data) //バックエンド管理システムのホームページにジャンプします this.$router.push("/welcome") }) 3. ユーザー終了ユーザーがログアウトするときは、セッション内のトークンデータを削除して他のページにジャンプするだけで済みます。このとき、ルーティングナビゲーションガードが再び有効になるため、バックエンドに接続せずにフォアグラウンドで実装できます。 1. 実装コードログアウト() { //1. セッション内のデータを削除する window.sessionStorage.clear() //2. ユーザーがログインページにアクセスする this.$router.push('/login') } 要約する上記は、Vue でルーティングナビゲーションガードを設定した後、ユーザーのログインとログアウトを実現する機能です。実装には、プロジェクトにログインしないとインターフェースにアクセスできない状況と、ユーザーがログインしていなくてもフロントデスクを閲覧できる状況の 2 つがあります。最初のケースでは、グローバル構成のみを実行する必要があります。 2 番目のケースでは、ログイン後にジャンプするコンポーネントで単一コンポーネント ルーティング ナビゲーションを構成するだけで済みます。 これで、Vue2.x ルーティング ナビゲーション ガードを設定してユーザーのログインとログアウトを実装する方法についての説明は終わりです。Vue ルーティング ガードのログインとログアウトに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL 8.0.19 インストールチュートリアル
>>: Docker のホスト間コンテナ通信オーバーレイ実装プロセスの詳細な説明
1. 単一マシン環境の構築# 1.1 ダウンロードZookeeper の対応するバージョンをダウンロ...
NATこのようにして、仮想マシンのネットワーク カードはホストの VMnet8 に接続されます。この...
目次uni-app のスタイル要約するuni-app のスタイルsassプラグインは公式ウェブサイト...
<br />私はいつもYahooのウェブデザインが素晴らしいと信じてきました。しかし、こ...
1: readonly は、このコントロールをロックして、インターフェイス上で変更できないようにしま...
この記事では、MySQL 8.0のダウンロードとインストールについてご紹介します。具体的な内容は以下...
目次序文ベジェ曲線の紹介二次ベジェ曲線3次ベジェ曲線ベジェ曲線計算機能フィッティングアルゴリズム付録...
初めてwampをインストールした後、すべてのサービスが正常に使用できますが、再起動するとwampのア...
目次テーブル定義の自動増分 ID InnoDBシステムはrow_idを自動的に増加させるシドInno...
MySQLキーワードDistinctの使い方の紹介DDL SQLを準備します: テーブルテストを作成...
ディレクトリ構造 。 │ .env │ docker-compose.yml │ └─mysql ├...
多くの場合、ストアド プロシージャを作成するときに配列がよく使用されますが、MySQL ではストアド...
目次1. はじめに2. 環境整備1. 基本環境3.Mysqlマスタースレーブ構成をインストールする1...
序文: Vue では、props を使用して、もともと分離されていたコンポーネントを直列に接続するこ...
目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...