expressjs中的授权中间件

时间:2014-09-15 19:00:13

标签: node.js express passport.js

我正在关注这个link中间件模式以检查用户是否登录了expressjs:但是我遇到了问题。假设用户(Sam)已登录并且他正在尝试编辑/删除其他人的记录,我该如何为其添加中间件?

例如:Sam,在登录后,只需在URL中输入:

.... / record /:random_id / edit

我写的中间件只是检查用户是否登录,在这种情况下也是如此。所以他能够编辑记录。

我尝试解决此问题的方法之一是对底层数据库执行两次调用:

  1. 获取记录的数据/:random_id
  2. 查看记录的所有者ID是否与已登录的人员相同。
  3. 如果是,请继续编辑
  4. 否则将用户重定向到其他路线
  5. 这种方法的问题是这个代码需要注入这么多路由。我也想知道我是否可以编写一个中间件来避免额外的数据库之旅。

    我查看了passport.js,我无法将其用于我的场景。

    任何帮助将不胜感激。

0 个答案:

没有答案