假设我有 3 个模型:管理员、用户、产品(我正在使用模型类)
只有管理员可以添加、更新、删除产品,用户只能获取产品,所以我为相应的路由注册了一个ACL中间件。
现在在我的 ACL 中间件中,我想授权用户,如果他们是ADMIN,我将调用next()方法,否则,我将使用401.
我发现使用 JavaScript 的运算符很容易进行检查instanceof:
const user = await auth.authenticate()
if (user instanceof Admin) {
await next()
} else {
throw UnAuthorizedUserException
}
await auth.authenticate()返回发送请求的当前用户,无论是用户还是管理员
但是,我不确定这是否是区分黑白管理员和用户的最安全方法。
现在我的问题是,我这样做对吗?哪种方法比我正在做的更好?
注意(如果有帮助):我正在使用 Adonis.js v5、TypeScript 和 Lucid 模型
慕田峪9158850
慕斯王
相关分类