序文以前、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 のホスト間コンテナ通信オーバーレイ実装プロセスの詳細な説明
CSS を使用して、左側に固定幅、右側に適応幅を持つ 2 列レイアウトを実装する 7 つの方法。コー...
序文MySQL データベースのデフォルトのデータベース ファイルは /var/lib/mysql に...
1 MySQLをダウンロードするダウンロードアドレス: http://downloads.mysq...
目次1. 機能説明2. 親コンポーネント3. サブコンポーネント NextTick.vue 4なぜ未...
序文インターセプターの機能の 1 つは、特定のメソッドの呼び出しをインターセプトできることです。イン...
この記事では、ユーザー名が使用可能かどうかを確認するためのVueの具体的なコードを例として紹介します...
目次序文場合最適化まとめ序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク ...
rpmインストールパッケージを使用してmysqlをオフラインでインストールします。参考までに準備:公...
この記事では、CSS無限シームレススクロール効果を実現するためのvue3の具体的なコードを参考までに...
Macでデータベースを操作する際に個人が遭遇するデータベース起動の問題の簡単な記録1. Apple-...
目次1. 小道具親 >>> 子 (Props)子 >>> 親 (...
この記事の例では、ドラッグアンドドロップを使用して構造ツリーを作成するVueの具体的なコードを共有し...
目次例示する1. ブロブオブジェクト2. フロントエンド3. バックエンド要約する例示する最近、ファ...
目次ミニプログラム開発者ツールのソースコードを表示する方法ミニプログラムアーキテクチャ設計1. ミニ...
最近、hadoop テスト クラスターで spark ストリーミング プログラムを実行し、その後、n...