programing

$auth.get에 접속하는 방법서비스의 토큰('local')을 선택하십시오.

goodsources 2022. 8. 17. 23:59
반응형

$auth.get에 접속하는 방법서비스의 토큰('local')을 선택하십시오.

nuxtjs.i는 EventService.js와 같은 서비스를 만들려고 합니다.EventService.js에서 Axios를 사용하여 데이터를 가져오고 싶은데 Authorization 헤더를 설정합니다.그러나 $auth.get에서 액세스 토큰을 가져올 수 없습니다.토큰('local').Authorization header를 모든 axios 요청으로 설정하고 싶지 않습니다.고마워요.

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')
}

}

악시오스 요격기가 내 문제를 해결했다.

apiClient.interceptors.request.use(
        (config) => {config.headers["Authorization"] =cookies.get("auth._token.local")
        .replace(/%/g, " ") 
   return config
   }, 
function(error) {
  return Promise.reject(error) })

main.js(엔트리 파일)에 'axios'를 Import하고 다음을 추가할 수 있습니다.

import axios from 'axios'

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

또한 토큰을 처음 설정할 때 로컬스토리지에서 토큰을 설정하고 Axios 기본값헤더에 다시 할당할 수 있습니다.

import axios from 'axios'

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

이것은 당신이 하는 모든 공리요구에 Authorization 헤더를 보내기에 충분합니다.

언급URL : https://stackoverflow.com/questions/59931433/how-can-access-auth-gettokenlocal-in-a-service

반응형