sever端的这种装饰器路由有没有办法统一判断管理员登录?
来源:8-3 完善管理员登录流程
慕用9964470
2017-10-12
比如后台方法都写在class AdminController里面的,按照中间件的写法,每个逻辑我都要加个判断权限的中间件,有没有办法直接在整个AdminController类加上判断管理员登录方法?这样就不用怕忘记写权限判断而造成不安全因素?
写回答
1回答
-
为了精细的控制权限,课程是按照设定在 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) {012017-10-15
相似问题