axios(vue.js)で動的認証ヘッダーを使用する方法は?

スパーク

私は、API呼び出しに大きく依存するVue.jsアプリを構築しています。私はaxiosを使って電話をかけています。私はこれに似たパターンを使用しています基本的に、すべてのコンポーネントで共有されるサービスを作成しました。以下はサービスです:

//api-client.js

import axios from 'axios'
import store from '../src/store'

let authKey = store.getters.getAuthKey
export default  axios.create({
  withCredentials: false, // This is the default
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    authorization: "Basic "+authKey
  }
})

ここで、ゲッターを使用してvuexストアの認証トークンを取得し、サービスに設定していることに注目してください。

私はこのサービスを次のように使用します:

//App.vue
<template>
    <div>
       <!-- some code -->
    </div>
</template>

<script>
import apiClient from "../api-client.js" 
    export default {
        mounted(){
         apiClient.get("#url").then(()={
            // Do Something

         })
      }
    }
</script>

<style lang="scss">

</style>

状況は、認証キーが時々変更されるので、ストアの認証キーを更新する設定があります。この設定により、ストア内の認証キーは正常に更新されますapi-client.js内のキーは更新されません。これは1回だけ読み込まれ、ストア内の更新はこのapi-client.jsにカスケードされません

これを解決するためのパターンはありますか?提案してください。

zhuber

トークンは動的であるため、axiosインスタンスのファクトリヘッダー設定でトークンを定義することはできません。これをグローバルに処理する最良の方法は、リクエストインターセプターを使用することです

//api-client.js

import axios from 'axios'
import store from '../src/store'

const apiClient = axios.create({
    withCredentials: false, // This is the default
    headers: {
        Accept: 'application/json',
        'Content-Type': 'application/json'
    }
});

apiClient.interceptors.request.use(function (config) {
    // Do something before request is sent
    let authKey = store.getters.getAuthKey
    config.headers["Authorization"] = "Basic " + authKey;
    return config;
});

export default apiClient;

このようにして、インターセプター関数はリクエストごとに発生し、最新バージョンのauthKey;を取得します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Axiosで認証ヘッダーを送信する方法

分類Dev

Axios.postに反応するためにヘッダーで認証トークンを渡す方法は?

分類Dev

fetchまたはaxiosを使用して認証ヘッダーを送信します

分類Dev

vue jsでFilepondを使用し、axiosを使用してファイルをアップロードする方法は?

分類Dev

Vue.js-main.jsでaxiosを使用する方法

分類Dev

Async/await axios calls with Vue.js

分類Dev

Upload multiple file with vue js and axios

分類Dev

vue と axios で img を使用する

分類Dev

axiosフックリクエストに認証ヘッダーを追加するにはどうすればよいですか?

分類Dev

vue-cliでHTTPヘッダーを設定する方法は?

分類Dev

Axiosヘッダーが機能しないLaravelとVue.js

分類Dev

axiosヘッダーのデータをVueのコンポーネントに取得する方法

分類Dev

Vue-MultiselectでAxiosを使用する方法は?

分類Dev

Vue.js - axios is undefined when trying to store and display vue-axios response data

分類Dev

axiosでヘッダーを設定する方法

分類Dev

Vue.jsでセッションCookieベースの認証を実装する方法は?

分類Dev

axios.postは認証ヘッダーを送信しません(ただし、.getは送信します)

分類Dev

Axiosでnet :: ERR_CONNECTION_REFUSEDを処理する方法-Vue.js

分類Dev

axiosでの認証ヘッダーの設定

分類Dev

axiosでの認証ヘッダーの設定

分類Dev

axiosのデフォルトを設定するときに認証ヘッダーを取得しない

分類Dev

Axiosが認証ヘッダーを送信しない-ReactJS

分類Dev

axiosで基本認証を送信する方法

分類Dev

Axios&Vueを使用してLaravelでデータを送信する

分類Dev

Node.js、Vue.js、Passport.js。.isAuthenticated()は常にfalseを返しますか?Axiosヘッダーはおそらく?

分類Dev

login.vueにヘッダーを追加する方法は?

分類Dev

Axiosを使用するVue.jsは、他の方法のデータを使用します

分類Dev

Axios:別のファイルでbaseUrlを使用すると、axiosリクエストヘッダーでの認証トークンの設定で問題が発生します

分類Dev

vueでaxiosリクエストによって返された認証ページを処理する

Related 関連記事

  1. 1

    Axiosで認証ヘッダーを送信する方法

  2. 2

    Axios.postに反応するためにヘッダーで認証トークンを渡す方法は?

  3. 3

    fetchまたはaxiosを使用して認証ヘッダーを送信します

  4. 4

    vue jsでFilepondを使用し、axiosを使用してファイルをアップロードする方法は?

  5. 5

    Vue.js-main.jsでaxiosを使用する方法

  6. 6

    Async/await axios calls with Vue.js

  7. 7

    Upload multiple file with vue js and axios

  8. 8

    vue と axios で img を使用する

  9. 9

    axiosフックリクエストに認証ヘッダーを追加するにはどうすればよいですか?

  10. 10

    vue-cliでHTTPヘッダーを設定する方法は?

  11. 11

    Axiosヘッダーが機能しないLaravelとVue.js

  12. 12

    axiosヘッダーのデータをVueのコンポーネントに取得する方法

  13. 13

    Vue-MultiselectでAxiosを使用する方法は?

  14. 14

    Vue.js - axios is undefined when trying to store and display vue-axios response data

  15. 15

    axiosでヘッダーを設定する方法

  16. 16

    Vue.jsでセッションCookieベースの認証を実装する方法は?

  17. 17

    axios.postは認証ヘッダーを送信しません(ただし、.getは送信します)

  18. 18

    Axiosでnet :: ERR_CONNECTION_REFUSEDを処理する方法-Vue.js

  19. 19

    axiosでの認証ヘッダーの設定

  20. 20

    axiosでの認証ヘッダーの設定

  21. 21

    axiosのデフォルトを設定するときに認証ヘッダーを取得しない

  22. 22

    Axiosが認証ヘッダーを送信しない-ReactJS

  23. 23

    axiosで基本認証を送信する方法

  24. 24

    Axios&Vueを使用してLaravelでデータを送信する

  25. 25

    Node.js、Vue.js、Passport.js。.isAuthenticated()は常にfalseを返しますか?Axiosヘッダーはおそらく?

  26. 26

    login.vueにヘッダーを追加する方法は?

  27. 27

    Axiosを使用するVue.jsは、他の方法のデータを使用します

  28. 28

    Axios:別のファイルでbaseUrlを使用すると、axiosリクエストヘッダーでの認証トークンの設定で問題が発生します

  29. 29

    vueでaxiosリクエストによって返された認証ページを処理する

ホットタグ

アーカイブ