新增 axios/index.ts
引入import Axios, { AxiosRequestConfig, AxiosResponse, AxiosPromise } from ‘axios’;
请求攔截 axios.interceptors.request.use((config:any) => {return config;},(error)=>{return Promise.rejest(error);})
響應攔截 axios.interceptors.response.use((response) => {return response;},(error)=>{return Promise.rejest(error);})
1 | import Axios, { AxiosRequestConfig, AxiosResponse, AxiosPromise } from 'axios'; |
知識點
HTTP Token 使用方式: Basic Token v.s Bearer Token
使用Token的方式
1.使用Authorization HEADER:
Ex: Authorization: Bearer QQxhZGRpbjpvcGVuIHNlc2FtQQ==
2.使用Form Body:
不建議將Token加入Body,使用時 ,並使用GET 之外的 HTTP verbs (POST、DELETE、PUT)
HEADER: Content-Type: “application/x-www-form-urlencoded”
3.直接使用在URI :
一般來說不會使用這種方法,除非是Authorization header不支援,或者protect resource 支援該方法。
Ex: GET /resource?access_token=mF_9.B5f-4.1JqM HTTP/1.1
Token Response HTTP Response Status code 為200時代表成功
Basic Token: 當授權為「不」通過時,回傳401 code並告知哪個 Protect Scope 錯誤
Bearer Token: 當授權為「不」通過時,回傳400、401、403 code,並根據狀況回傳對應的錯誤。
創建api模塊管理所有的api接口
1 | import { postApi } from '@/axios/index' |