Как получить доступ к $ auth.getToken ('local') в службе? - PullRequest
1 голос
/ 27 января 2020

Я новичок в nuxt js. Я пытаюсь создать службу, подобную EventService. js. Из EventService. js Я хочу получить данные, используя ax ios. но я хочу установить заголовок авторизации. Но не могу получить токен доступа от $ auth.getToken ('local'). я не хочу устанавливать заголовок авторизации каждый топор ios запрос. Спасибо

import axios from 'axios'

 const apiClient = axios.create({
   baseURL: `example.com`,
   headers: {
   Accept: 'application/json',
   'Content-Type': 'application/json'
   'Authorization': "Bearer " +  **$auth.getToken('local')**
 }
})

export default {
   getEvents() {
     return apiClient.get('/events')
}

}

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

топор ios перехватчики решили мою проблему

apiClient.interceptors.request.use(
        (config) => {config.headers["Authorization"] =cookies.get("auth._token.local")
        .replace(/%/g, " ") 
   return config
   }, 
function(error) {
  return Promise.reject(error) })
1 голос
/ 29 января 2020

Вы можете импортировать 'ax ios' в свою основную. js (входной файл) и добавить следующее:

import axios from 'axios'

axios.defaults.headers.common['Authorization'] = `Bearer ${localstorage.getItem('token')}`;

А когда вы впервые настраиваете свой токен, вы можете установите его в локальном хранилище и снова присвойте топору ios заголовки по умолчанию:

import axios from 'axios'

const token = <AUTH_TOKEN>
// when setting the token
localstorage.setItem('token', token)
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;

Этого будет достаточно для отправки заголовка авторизации в каждом запросе топора ios, который вы делаете.

...