關(guān)鍵詞:前后端分離、jwt、登錄、權(quán)限驗(yàn)證
最近在做一個(gè)小應(yīng)用,需要用到vue實(shí)現(xiàn)登錄,以及給不同路由設(shè)置權(quán)限。在網(wǎng)上看了很多文章,講的是亂七八糟。感嘆國(guó)內(nèi)技術(shù)類文章實(shí)在是差勁,抄來抄去。這篇文章就說說我最后是如何實(shí)現(xiàn)的。
網(wǎng)站設(shè)計(jì)制作過程拒絕使用模板建站;使用PHP+MYSQL原生開發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了10多年的創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司。前后端分離項(xiàng)目中,后端提供api接口給前端,使用jwt發(fā)放權(quán)限。
首先前端提供用戶名和密碼請(qǐng)求登錄接口,后端驗(yàn)證之后返回給前端一個(gè)token,之后前端在請(qǐng)求需要權(quán)限的接口時(shí)攜帶這個(gè)token就可以了。
兩個(gè)問題
現(xiàn)在面臨兩個(gè)問題,
首先vue中不同的路由有不同的權(quán)限,比如我要訪問后臺(tái) /admin, 就需要先登錄才行,而有的頁(yè)面不需要登錄。
第二個(gè)問題是,vue組件中使用axios請(qǐng)求后臺(tái)服務(wù)時(shí),不同的接口有不同的權(quán)限。
后端接口權(quán)限
先來解決第二個(gè)問題。vue不同組件都要用到axios,我們?cè)谌譃閍xios添加request和response的攔截器。
也就是,在發(fā)起請(qǐng)求之前,先檢測(cè)header是否攜帶token信息。在接收響應(yīng)之前,先查看后端返回狀態(tài)碼,如果說需要token驗(yàn)證就跳轉(zhuǎn)到登錄界面。
在main.js添加如下,或者新增一個(gè)http.js文件:
// * http request 攔截器 axios.interceptors.request.use( config => { // * 判斷是否存在token,如果存在的話,則每個(gè)http header都加上token // * token會(huì)在登錄之后存儲(chǔ)在本地 if (localStorage.token) { config.headers["Authorization"] = `Bearer ${localStorage.token}`; } return config; }, err => { return Promise.reject(err); }); // * http response 攔截器 axios.interceptors.response.use( response => { let data = response.data; // * 正常返回?cái)?shù)據(jù) if (data.code === 0) { // * 返回data return data } // * 如果code是20103 表示token未認(rèn)證(后端定義的錯(cuò)誤碼) // * 跳轉(zhuǎn)到login if (data.code === 20103) { router.replace('/login') } return Promise.reject(data); }, error => { return Promise.reject(error); }); Vue.prototype.$http = axios;
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:vue登錄以及權(quán)限驗(yàn)證相關(guān)的實(shí)現(xiàn)-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://jinyejixie.com/article30/isgpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、品牌網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站收錄、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容