在調(diào)用API接口時(shí)遇到了無(wú)效token的問(wèn)題,網(wǎng)上搜了一大圈還以為是token時(shí)效的問(wèn)題,最后發(fā)現(xiàn)是給需要授權(quán)的 API ,必須在請(qǐng)求頭中使用Authorization 字段提供 token 令牌。
關(guān)于Authorization(授權(quán))的解釋:
用戶授予第三方應(yīng)用訪問(wèn)該用戶某些資源的權(quán)限
- 你在安裝手機(jī)應(yīng)用的時(shí)候,APP 會(huì)詢問(wèn)是否允許授予權(quán)限(訪問(wèn)相冊(cè)、地理位置等權(quán)限)
- 你在訪問(wèn)微信小程序時(shí),當(dāng)?shù)卿洉r(shí),小程序會(huì)詢問(wèn)是否允許授予權(quán)限(獲取昵稱、頭像、地區(qū)、性別等個(gè)人信息)
實(shí)現(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
})
然后在請(qǐng)求頭中可以發(fā)現(xiàn)Authorization的值還是Null,原因就是當(dāng)你發(fā)送的發(fā)出的是登錄請(qǐng)求,在登錄期間服務(wù)器沒(méi)有給你token,如果登錄之后調(diào)用其他接口再去監(jiān)聽這次請(qǐng)求的話就會(huì)發(fā)現(xiàn)Authorization的值不在是null了,而是登錄后的token。根據(jù)授權(quán)(Authorization)的解釋,之所以要這么做的原因就是要給token授權(quán)訪問(wèn)api接口的權(quán)限。