欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

nuxt.js中間件實現(xiàn)攔截權(quán)限判斷的方法

 更新時間:2018年11月21日 11:03:30   作者:雨沐楓  
這篇文章主要介紹了nuxt.js中間件實現(xiàn)攔截權(quán)限判斷的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近在把vue的項目改成基于nuxt.js是 ssr渲染,需要進行權(quán)限攔截判斷,網(wǎng)上查了不少資料。最終看官方手冊解決了,貼一下過程

項目環(huán)境

"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) {
    //將服務(wù)端的token存入cookie當中
    Cookie.set('token', res.data.token)
    //返回上一頁
    _this.$router.push(_this.redirectURL)
    }else{
    _this.$message.warning(res.msg)
    }
   })
   } else {
   return false;
   }
  });
  },

二:nuxt中間件middleware編寫權(quán)限攔截

新建一個userAuth.js,目錄結(jié)構(gòu)如下

代碼如下

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
 //在服務(wù)端
 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)
 }
 //需要進行權(quán)限判斷的頁面開頭
 if (!token) {
  redirect(redirectURL)
 }
}

utils.js里面的方法

import Cookie from 'js-cookie'
export default {
 //獲取服務(wù)端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) : ''
 }
}

到這里,我們的中間件,權(quán)限判斷依據(jù)完成了

三:運用到項目中

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

pages/user/setting.vue

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

middleware: 'userAuth',

現(xiàn)在

setting頁面就有權(quán)限判斷了

基于nuxt.js渲染的 ssr 網(wǎng)站可以愉快的運行起來了。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue中以HTML形式顯示內(nèi)容并動態(tài)生成HTML代碼的方法

    Vue中以HTML形式顯示內(nèi)容并動態(tài)生成HTML代碼的方法

    有的時候我們想在vue中直接顯示一個html的網(wǎng)頁,如果用富文本方式,那么內(nèi)容就會太多,那么怎么處理呢?這篇文章主要給大家介紹了關(guān)于Vue中如何以HTML形式顯示內(nèi)容并動態(tài)生成HTML代碼的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • 關(guān)于vue3編寫掛載DOM的插件問題

    關(guān)于vue3編寫掛載DOM的插件問題

    這篇文章主要介紹了vue3編寫掛載DOM的插件的問題,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • vue實現(xiàn)input文本框只能輸入0-99的正整數(shù)問題

    vue實現(xiàn)input文本框只能輸入0-99的正整數(shù)問題

    這篇文章主要介紹了vue實現(xiàn)input文本框只能輸入0-99的正整數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue中keep-alive組件的深入理解

    Vue中keep-alive組件的深入理解

    這篇文章主要給大家介紹了關(guān)于Vue中keep-alive組件的深入理解,文中通過實例代碼結(jié)束的非常詳細,對大家學習或者使用Vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2020-08-08
  • vue實現(xiàn)監(jiān)聽localstorage值變化

    vue實現(xiàn)監(jiān)聽localstorage值變化

    這篇文章主要介紹了vue實現(xiàn)監(jiān)聽localstorage值變化,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue element-ul實現(xiàn)展開和收起功能的實例代碼

    vue element-ul實現(xiàn)展開和收起功能的實例代碼

    這篇文章主要介紹了vue element-ul實現(xiàn)展開和收起功能的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • vue?px轉(zhuǎn)rem配置詳解

    vue?px轉(zhuǎn)rem配置詳解

    這篇文章主要為大家介紹了vue?px轉(zhuǎn)rem配置,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • vue倒計時刷新頁面不會從頭開始的解決方法

    vue倒計時刷新頁面不會從頭開始的解決方法

    在本篇文章里小編給大家整理的是關(guān)于vue倒計時刷新頁面不會從頭開始的解決方法,需要的朋友們參考下。
    2020-03-03
  • vue基礎(chǔ)入門之vuex安裝與使用

    vue基礎(chǔ)入門之vuex安裝與使用

    vuex是一個專為vue.js應(yīng)用程序開發(fā)的 狀態(tài)管理模式,它采用集中式存儲管理應(yīng)用的所有的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測的方式發(fā)生變化,這篇文章主要給大家介紹了關(guān)于vue入門之vuex安裝與使用的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • VUE項目初建和常見問題總結(jié)

    VUE項目初建和常見問題總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于VUE 項目初建和常見問題以及相關(guān)知識點內(nèi)容,有需要的朋友們學習下。
    2019-09-09

最新評論