中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用nuxt.js中間件怎么實現攔截權限判斷

發布時間:2021-06-01 17:54:51 來源:億速云 閱讀:348 作者:Leah 欄目:web開發

這期內容當中小編將會給大家帶來有關利用nuxt.js中間件怎么實現攔截權限判斷,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

項目環境

"element-ui":"^2.3.4",

"flyio":"^0.5.2",

"js-cookie":"^2.2.0",

"nuxt":"^1.4.0",

一:首先登錄頁面

在登錄頁面script中引入

import Cookie from 'js-cookie' //npm install js-cookie --save

在script里加上

data(){
 return{
  redirectURL:'/'
 }
},
mounted() {
  let rediretUrl = this.$route.query.ref;
  if (rediretUrl){
  this.redirectURL = rediretUrl
  }
 }

接著在methods里面編寫一個 submitLogin的方法

submitLogin(ev) {
  var _this = this;
  this.$refs.ruleForm2.validate((valid) => {
   if (valid) {
   _this.logining = true
   var sendData = {
    username: _this.ruleForm2.account,
    password: _this.ruleForm2.pass,
    is_remember: _this.isRemember
   };
   //登錄操作
   _this.$https.post('login/index', sendData).then(res => {
    if (res.status == 1) {
    //將服務端的token存入cookie當中
    Cookie.set('token', res.data.token)
    //返回上一頁
    _this.$router.push(_this.redirectURL)
    }else{
    _this.$message.warning(res.msg)
    }
   })
   } else {
   return false;
   }
  });
  },

二:nuxt中間件middleware編寫權限攔截

新建一個userAuth.js,目錄結構如下

代碼如下

import utils from '~/utils/utils'
 
export default function ({route, req, res, redirect}) {
 let isClient = process.client;
 let isServer = process.server;
 let redirectURL = '/login';
 var token, path
 //在服務端
 if (isServer) {
 let cookies = utils.getcookiesInServer(req)
 path = req.originalUrl;
 token = cookies.token ? cookies.token : ''
 }
 //在客戶端判讀是否需要登陸
 if (isClient) {
 token = utils.getcookiesInClient('token')
 path = route.path;
 }
 if (path) {
 redirectURL = '/login?ref=' + encodeURIComponent(path)
 }
 //需要進行權限判斷的頁面開頭
 if (!token) {
  redirect(redirectURL)
 }
}

utils.js里面的方法

import Cookie from 'js-cookie'
export default {
 //獲取服務端cookie
 getcookiesInServer:function (req) {
 let service_cookie = {};
 req && req.headers.cookie && req.headers.cookie.split(';').forEach(function (val) {
  let parts = val.split('=');
  service_cookie[parts[0].trim()] = (parts[1] || '').trim();
 });
 return service_cookie;
 },
 //獲取客戶端cookie
 getcookiesInClient:function (key) {
 return Cookie.get(key) ? Cookie.get(key) : ''
 }
}

到這里,我們的中間件,權限判斷依據完成了

三:運用到項目中

在項目中。例如,用戶信息設置頁面,需要進行是否登錄判斷

pages/user/setting.vue

我們在頁面中運用剛剛編寫的userAuth中間。

middleware: 'userAuth',

上述就是小編為大家分享的利用nuxt.js中間件怎么實現攔截權限判斷了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沙洋县| 庄浪县| 广安市| 石景山区| 莆田市| 渑池县| 龙山县| 辽源市| 体育| 汤阴县| 石景山区| 丹巴县| 连云港市| 宣威市| 泸水县| 兰考县| 图木舒克市| 永福县| 秦安县| 宁城县| 太仓市| 南澳县| 青岛市| 扬中市| 沂南县| 抚州市| 浦东新区| 绥芬河市| 长葛市| 麻城市| 古交市| 清苑县| 凤山县| 南安市| 牙克石市| 固原市| 雅江县| 莱阳市| 应用必备| 买车| 全南县|