序文以前、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 のホスト間コンテナ通信オーバーレイ実装プロセスの詳細な説明
最近、あるプロジェクトに取り組んでいたとき、自分のプロジェクトでは CSS3 のアニメーション技術を...
目次1. テストデータ2. ヌル値による不便3. スペース、空の値、null をどのように判断すれば...
CSS のみを使用してどのような充電アニメーション効果を作成できるかを見てみましょう。バッテリーを...
目次序文需要分析MySQL ユーザー変数累積計算にMysqlユーザー変数を使用する要約するこの記事で...
1. 文法: <meta name="名前" content="...
1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...
Docker コンテナはさまざまな方法で管理およびデプロイできます。 Docker コマンドを直接使...
これは、Linux 管理者だけでなく、私たち全員にとって非常に重要なトピックです。つまり、IT イン...
適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...
Shell は C 言語で書かれたプログラムであり、ユーザーが Linux を使用するための橋渡しと...
初めて docker に触れたときは本当に戸惑いました。初心者向けのチュートリアルを長い間読みました...
mysqladmin は管理と操作を行う公式の mysql クライアント プログラムです。MySQL...
Dockerのインストール依存パッケージをインストールする sudo yum install -y ...
SSH 公開鍵認証は、SSH 認証方式の 1 つです。 SSH パスワードフリーのログインは公開鍵認...
VMWare (Virtual Machine ware) は、「仮想 PC」ソフトウェア会社です。...