上个项目小试了下使用Nuxt做多语言官网,这次要做一个多语言商城项目,功能不算复杂,算是一个简化版的商城,涉及到了路由权鉴,这里记录一下。
Nuxt权限拦截分为两种情况,一个是直接请求页面的服务端层面拦截,另一个是在浏览器路由跳转的客户端拦截,这里需要对着两种情况做处理。
由于服务端没有window对象,拿不到localStorage内的token,在服务端需要使用’js-cookie’,在cookie中也设置token,服务端在request中拿到cookie中的token来判断权限。在客户端则使用localStorage来判断权限。
1 | import Cookies from 'js-cookie' |
utils.js
1 | // 设置localStorage |
登录页
1 | // 处理登录 |
middleware文件夹下新建权鉴判断js:accountVerification.js
(这里去除多语言判断,仅展示权鉴部分)
1 | import { getCookieFromReq, getToken } from '~/utils/utils' |
最后,在要使用该中间件的page中添加
1 | middleware: 'accountVerification' |
该中间件就应用到对应的页面上了。