sever端的这种装饰器路由有没有办法统一判断管理员登录?

来源:8-3 完善管理员登录流程

慕用9964470

2017-10-12

比如后台方法都写在class AdminController里面的,按照中间件的写法,每个逻辑我都要加个判断权限的中间件,有没有办法直接在整个AdminController类加上判断管理员登录方法?这样就不用怕忘记写权限判断而造成不安全因素?

写回答

1回答

Scott

2017-10-14

为了精细的控制权限,课程是按照设定在 controller 下面的方法这一层来植入权限中间件,也建议你这么做,可以更加严谨的控制各个方法背后 HTTP 触达的权限范围。


可以把中间件放到 decorator/router 里面,或者单独新建一个文件,里面放这些中间件:


const loginCenter = convert(async (ctx, next) => {
  const { username, email, password } = ctx.request.body
  if (!logined(username, email, password)) {
    return (ctx.body = {
      success: 0,
      msg: '密码不对'
    })
  } else {
    return (ctx.body = {
      success: 1
    })
  }
}

在 routes 下面的使用就很简单了


@controller('')
export class commonController {
  @all('/someRoute')
  @loginCenter
  async someMethod (ctx, next) {


0
1
慕用9964470
非常感谢!
2017-10-15
共1条回复

开发微信全家桶项目Vue/Node/MongoDB高级技术栈全覆盖

Nuxt/Vue SSR + Koa2 跨栈开发微信公众号+小程序

989 学习 · 401 问题

查看课程