導入
リンクhttps://auth.nuxtjs.org/api/options/#cookie 始めるこのドキュメントによると、@nuxt/auth を使用した後、指定された cookie: false が表示されない場合は、認証トークンがデフォルトで cookie に保存されます (上記の localstorage についても同様) インターフェースはリクエスト時に Cookie からトークンを取得し、それをインターフェース資格情報としてサーバーに送信します。 ディレクトリ構造 nuxt-distは、npm run devまたはnpm run buildのたびにwebpackによって生成されるファイルです。その中のコードは、実際に最後に呼び出すコードとみなすことができます(ここで直接変更やデバッグを行うこともできますが、プロジェクトを再実行するたびに復元されます。 nuxt/auth にはいくつかのスキームがあります。たとえば、この nuxt-dist/auth/schemes/local.js を参照してください。 私たちが書いたコードでは、$auth.loginWith を使用してこれを呼び出しましたが、実際には、loginWith は最終的に login を呼び出します。 次に、nuxt-dist/auth/schemes/local.jsにあるログインを確認します。 nuxt-dist は、npm run dev または npm run build のたびに webpack によって生成されるファイルです。ここのコードは、最後に実際に呼び出すコードと見なすことができます (ここで直接変更してデバッグすることもできますが、プロジェクトを再実行するたびに復元されます)。 私たちが書いたコードでは、$auth.loginWith を使用してこれを呼び出しましたが、実際には、loginWith は最終的に login を呼び出します。 次に、nuxt-dist/auth/schemes/local.jsにあるログインを確認します。 メソッド内の this.name は auth.strategy であり、これは local、local1 などであり、上記の loginWith メソッド内の setStrategy() は auth.strategy 情報をローカルに保存します。 この方法では この方法では、_keyは._token.localに組み立てられます。 最後に、このメソッドは setCookie メソッドと serLocalStorage メソッドを呼び出し、トークンを cookies と localstorage に保存し、setCookie で再度組み立てられ、デフォルトで auth である cookies.prefix が追加されます。 最後にシリアル化後、Cookie に保存されます。 ログインと認証のロジック全体は基本的に次のようになります。 コードを読み進めてくださいnuxt.config.jsで複数の認証を設定することもできます: {strategies: {local WeChatでログイン、携帯電話番号でログイン、アカウントでログイン… 自動フェッチ https://auth.nuxtjs.org/schemes/local user.autoFetch が true (デフォルト) の場合、endpoints.user はログインが成功するとすぐにリクエストを送信します。このエンドポイントは、ユーザー プロパティに直接割り当てられた特定のユーザーの JSON 情報で応答する必要があります。 ログイン セッションから直接ユーザー情報を返す場合は、user.autoFetch を false に設定し、loginWith 応答からユーザー情報を取得して、setUser に渡します。 ユーザー情報の取得を完全に無効にしたい場合は、endpoints.user: false を設定します。これは、ユーザー情報エンドポイントが呼び出されないことを意味しますが、フロントエンドはユーザーについて何も知らないことも意味します。つまり、this.$auth.user は {} になります。 ps: インターフェースを置き換える必要があるため、ユーザーは自動的にクエリを実行し、結果として生じるエラーは開発に役立ちません。コメントを通じて段階的に開発できます。 ユーザー: { 自動フェッチ: false、 }, プロキシ設定プロジェクトのバックエンドインターフェースは、バックエンドローコードプラットフォームとJavaインターフェースに基づいています。インターフェースの先頭の名前は一貫していませんが、プロキシを介して処理でき、クロスドメインの問題も解決できます。 アクシオス: // // ベースURL:'' プロキシ: true、 プレフィックス: '/'、 // 資格情報: false、 }, プロキシ: { '/ビジネス': { ターゲット: 'http://xxlb/', パス書き換え: { '^/biz': '/biz/', changeOrigin: true // クロスドメインかどうかを示します} }, '/フロント': { ターゲット: 'http://xxlb/', パス書き換え: { '^/front': '/api/front', changeOrigin: true // クロスドメインかどうかを示します} }, 傍受を要求するアクシオス: // // ベースURL:'' プロキシ: true、 プレフィックス: '/'、 // 資格情報: false、 }, プロキシ: { '/ビジネス': { ターゲット: 'http://xxlb/', パス書き換え: { '^/biz': '/biz/', changeOrigin: true // クロスドメインかどうかを示します} }, '/フロント': { ターゲット: 'http://xxlb/', パス書き換え: { '^/front': '/api/front', changeOrigin: true // クロスドメインかどうかを示します} }, 異なるプレフィックスを持つインターフェースの処理dev はローカル開発環境に使用され、サーバーにデプロイされた場合は使用できません。 定数temp = { API: ['/front/login', 'xxxxxx', 'xxxxx'], api2: ['/test', 'xxxxxx'], xxx: […] } これは、プレフィックスを使用する必要があるすべてのインターフェースを明示的にリストすることと同じです。 これには3つの利点があります。 実稼働環境で他のサーバー インターフェイスを呼び出す必要がある場合は、特定のルールが必要です。ルールがある場合は、ルールを一致させてから変更します。 定数temp = { http://10.0.0.1/api: ['/front/login', 'xxxxxx', 'xxxxx'], http://10.0.0.1/api2: ['/test', 'xxxxxx'], http://10.0.0.1/xxx: […]、 … http://10.0.1.111/api: ['/sth/xxx'] } プレフィックスの範囲を拡張してプロトコルとドメイン名を含める 動的ルーティング構成https://www.nuxtjs.cn/guide/routing nuxt-distは自動的にパッケージ化して設定を生成します リダイレクトと認証権限ミドルウェア 一部のシナリオでは、アクセスするためにログインする必要があります。そうでない場合は、/login ページにリダイレクトされます。処理が完了したので、auth: false を設定して、一部のページがログインにリダイレクトされないように処理できます。たとえば、現在表示されているページでは、登録前にバックグラウンドで登録リンクが生成されます。このページでは、トークン情報は必要ありません。 vue-nuxt ログイン認証の実装に関するこの記事はこれで終わりです。vue-nuxt ログイン認証に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: 通知メッセージカルーセルを実装するための CSS3 トランジション
>>: HTMLの水平線注釈とコードコメントの使い方をマスターするだけです
目次序文異なるコンピュータ上の 2 つの Node.js プロセス間の通信TCPソケットの使用HTT...
1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...
Web サービスは、アプリケーション間の通信に関係しています。SOAP は、Web サービス間の X...
勉強の計画は簡単に中断され、継続するのが困難です。先日、社内で事業の方向性を調整するための会議があり...
昨日、1年間使用していた Alibaba Cloud サーバーを購入しました。システムは Linux...
目次1. HTTPGET 2. HTTP POSTウェブソケット4. Egretのhttpとwebs...
序文私のように、Java バックエンドに勤勉な人であれば、多数のプロジェクト機能を実装することに加え...
要件は次のとおりですテーブル構造、フィールドコメント情報、テーブル名などをエクスポートします。これは...
目次1. 挿入2. 更新3. 削除1. 挿入 顧客に挿入( 顧客.顧客住所、 顧客.cust_cit...
目次概要Vuex の 4 つの主要オブジェクト状態の使用突然変異の使用ゲッターの使用アクションの使用...
この記事を読む前に、Linuxコマンド、特にcentos7.3環境でyumを使用してインストールされ...
免責事項:このパスワード リセット方法は、Homebrew によってインストールされた MySQL ...
目次1.重複排除を設定する2. 重複を削除するには、2 回の for ループを使用します。 3. i...
目次1 Baota Software StoreにDockerをインストールする2 ゴグスイメージを...
<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...