Express角色认证

米哈尔·加利(Michal Gally)

我有一个MongoDB用户,每个用户都有一个属性user。用户可以注册,他们将获得默认的用户角色,但是在管理面板中,您可以创建其他管理员。问题是我不知道如何保护他人,而不仅仅是获得用于创建用户的POST路由,并且仅将角色属性设置为admin并将其发布为例如Insomnia。任何想法如何防止这种情况?

BG

我能想到的答案是使用JWT令牌。不知道如何使用passport.js来做到这一点,但是可以这样:

  1. 只有管​​理员用户才能在Web上创建管理员帐户(因为您不想使用默认用户帐户来创建它->仅向其他用户隐藏按钮/选项)
  2. 您可以将信息放入JWT令牌中(因此,您可以在JWT中添加admin-role以将管理请求与其他人分开,或者用户名已足够,您可以从令牌中获取用户名信息并从mongo中获取角色,然后检查用户的角色。)
  3. 只有管​​理员才能将JWT令牌与admin-role一起使用。(JWT令牌是在用户登录时创建的。您基本上将用户(刚刚登录的)信息隐藏在令牌中。)
  4. 放置一个没有JWT令牌(或没有管理员角色)的中间件不能进入next()的方法,否则返回403.如果让他们通过JWT令牌传递,则仅需控制用户的角色是否为admin在函数内部。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Tomcat JNDIRealm认证并忽略所有角色

来自分类Dev

如何获取已认证用户的角色/状态?

来自分类Dev

角色认证和授权MVC5

来自分类Dev

OAuth2认证后获取角色类型

来自分类Dev

OAuth2认证后获取角色类型

来自分类Dev

使用AJAX时Passport + Express4无法获得认证

来自分类Dev

使用AJAX时无法通过Passport + Express4认证

来自分类Dev

使用Express和Passport的Google令牌认证不起作用

来自分类Dev

护照认证后Express重定向到错误视图

来自分类Dev

如何在mvc.net中实现安全认证和角色机制?

来自分类Dev

可以获取/认证后如何从OpenAM获取完整的用户个人资料和角色?

来自分类Dev

如何在 spring 中仅为一个用户角色启用 X.509 相互认证?

来自分类Dev

ACL express.js 允许角色访问子路径

来自分类Dev

VS2019 MVC4 网站 IIS Express 表单认证

来自分类Dev

令牌认证:无法认证

来自分类Dev

流明认证

来自分类Dev

REST认证

来自分类Dev

令牌认证

来自分类Dev

Laravel认证

来自分类Dev

微软认证

来自分类Dev

密钥认证

来自分类Dev

Laravel认证

来自分类Dev

客户认证

来自分类Dev

密码认证

来自分类Dev

WordPress 认证

来自分类Dev

NFC认证

来自分类Dev

在Express REST Api中实现角色和权限的最佳方法是什么

来自分类Dev

角色角色和能力

来自分类Dev

使用角色和特定的用户ID来限制可以在react / node / express / mysql中查看哪些部分?