vuejs+koa2+mysql全栈开发个人博客(四) —— 后台操作权限

在这篇博客中,我将会详细介绍这个博客搭建的第三个技术要点:
后台操作权限

我们知道,有些api是游客可以使用的,比如查看一篇博客,根据分类查看博客等等,但是有些api是博主才能使用的,比如增删改一篇博客。

那么我们如何区分开来呢?

我们创建了两个axios对象

const back = axios.create(); //后台axios实例
const front = axios.create(); //前台axios实例

并且给back设置‘Authorization’头为存储的登录信息

back.defaults.headers.common['Authorization'] = "Bearer " + localStorage.getItem('jwt').replace(/(^\")|(\"$)/g, '')

这样做,访问后台api时,是带着登录信息访问的

并在执行这些api之前,先进行了token的验证

const jwt = require('jsonwebtoken');
module.exports = function (ctx,next) {
  if (ctx.request.headers['authorization']) {
    let token = ctx.request.headers['authorization'].split(' ')[1]
    let decoded = jwt.decode(token, process.env.JWT_SECRET)
    // 如果过期了就重新登录
    // 验证token也需要优化
    if (token && decoded.exp <= Date.now() / 1000) {
      ctx.body = {
        code: 401,
        message: "授权已经过期,请重新登陆"
      };
      return;
    }else{
      next();
    }
  }
}

如果验证通过,这允许操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值