在調(diào)用API接口時遇到了無效token的問題,網(wǎng)上搜了一大圈還以為是token時效的問題,最后發(fā)現(xiàn)是給需要授權(quán)的 API ,必須在請求頭中使用Authorization 字段提供 token 令牌。
關(guān)于Authorization(授權(quán))的解釋:
用戶授予第三方應(yīng)用訪問該用戶某些資源的權(quán)限
- 你在安裝手機應(yīng)用的時候,APP 會詢問是否允許授予權(quán)限(訪問相冊、地理位置等權(quán)限)
- 你在訪問微信小程序時,當?shù)卿洉r,小程序會詢問是否允許授予權(quán)限(獲取昵稱、頭像、地區(qū)、性別等個人信息)
實現(xiàn)授權(quán)的方式有:cookie、session、token、OAuth
需要在main.js文件里添加axios攔截器
axios.interceptors.request.use(config => {
console.log(config);
config.headers.Authorization = window.sessionStorage.getItem('token');
// 在最后必須return
return config
})
然后在請求頭中可以發(fā)現(xiàn)Authorization的值還是Null,原因就是當你發(fā)送的發(fā)出的是登錄請求,在登錄期間服務(wù)器沒有給你token,如果登錄之后調(diào)用其他接口再去監(jiān)聽這次請求的話就會發(fā)現(xiàn)Authorization的值不在是null了,而是登錄后的token。根據(jù)授權(quán)(Authorization)的解釋,之所以要這么做的原因就是要給token授權(quán)訪問api接口的權(quán)限。