【问题标题】:express elegant way to restrict resources belongs to specific user表达限制资源属于特定用户的优雅方式
【发布时间】:2022-07-07 02:40:31
【问题描述】:

我发现了很多关于基于权限/角色的授权的帖子。但是我正在寻找一种优雅的方式或任何返回数据/资源属于特定用户的绝妙做法?

例如:我希望 http://localhost:3000/transactions 不会返回所有事务,只返回属于发起请求的经过身份验证的用户的事务。

我的简单/手动解决方案?每个事务项都有user_id 字段,因此我可以编写中间件来解码jwt 令牌并从令牌中获取user_id 并将其公开给request 对象(即request.user_id = user_id from the token)。对于每条路线(如交易),我可以将这个request.user_id 添加到查询中。

我想知道,在 express/node.js 应用程序中处理此问题的最佳解决方案是什么?图书馆?服务?软件即服务?

【问题讨论】:

    标签: node.js jwt authorization


    【解决方案1】:

    您的方法听起来是正确的。 UserID 是用于授权的值,以可数字验证的方式接收,称为claim。一个好的方法是设计一个claimsclaimsPrincipal 对象,其中包含对您的授权API 有用的详细信息。

    在 Node.js 中,有时会在验证令牌时在中间件中进行处理,然后将其保存到 response.locals.claims,之后它可以被您描述的业务逻辑使用:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      相关资源
      最近更新 更多