axios Interceptors를 사용하여 공통 처리를 만듭니다.
소개
이 게시물은 Nuxt.js + Auth0 + Spring Boot로 만드는 인증 된 SPA 덤입니다.
리포지토리는 다음과 같습니다.
전면
서버측
개요
axios를 사용하여 비동기 통신을 할 때
리퀘스트시나 에러시 등으로 공통 처리를 끼워 넣고 싶은 것이 있다고 생각합니다.
이번에는
이 두 가지를 axios Interceptors를 사용하여 실현하고 싶습니다.
오류 표시에 사용할 Toast 설정
먼저 토스트를 준비합시다. yarn에서 dependencies에 추가합니다.
yarn add @nuxtjs/toast
nuxt.config.js에 설정을 추가합니다.
nuxt.config.js
modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy',
'@nuxtjs/toast' //追加
],
toast: {
position: 'top-center', //トーストの表示位置
duration: 2000 //トーストの表示されている時間(今回は2秒に設定)
}
axios Interceptors 설정
plugins에 추가합니다.
nuxt.config.js
plugins: [
'~/plugins/auth0.js',
'~/plugins/axios.js' //追加
],
plugins/axios.js를 만듭니다.
axios.js
import Vue from 'vue'
export default function ({$axios}) {
$axios.onRequest(config => {
console.log('Making request to ' + config.url)
config.headers.common['Authorization'] = 'Bearer ' + localStorage.getItem('idToken'); // リクエスト時にAuthorization ヘッダを設定、設定値はlocalStorageのidTokenの値を使用する。
})
$axios.onError(error => {
Vue.toasted.error(error) // エラー時はエラー内容をそのままトースト表示
})
}
동작 확인
토스트 확인
인증 전에 인증이 필요한 요청을 제출하면 401 오류가 반환됩니다.
그 내용이 토스트로 표시되고 있네요.
Authorization 헤더 확인
인증 후 인증이 필요한 엔드포인트(/api/v1/private)에 요청을 전송하고 있습니다.
200이 반환되고 Authorization 헤더가 부여되었음을 알 수 있습니다.
예상대로의 거동이 되었습니다! 성공입니다!
참고
Reference
이 문제에 관하여(axios Interceptors를 사용하여 공통 처리를 만듭니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mijinco0612/items/d9948af125fb975a4e59텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)