国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nuxt.js中間件實現攔截權限判斷的方法

2019-11-19 12:29:42
字體:
來源:轉載
供稿:網友

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

項目環境

"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',

現在

setting頁面就有權限判斷了

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永靖县| 萍乡市| 莎车县| 霍邱县| 宜州市| 伊金霍洛旗| 兴宁市| 额尔古纳市| 义乌市| 瑞丽市| 漳平市| 印江| 金阳县| 黑山县| 普兰县| 鹤峰县| 肃北| 嘉义市| 临漳县| 屏东县| 永仁县| 深水埗区| 昂仁县| 天水市| 永靖县| 于都县| 阿拉善左旗| 高雄市| 玛曲县| 沙雅县| 乡宁县| 伊春市| 平远县| 休宁县| 德州市| 格尔木市| 丰都县| 吉林省| 定兴县| 山阳县| 漠河县|