gpt4 book ai didi

node.js - 检查用户是否只更改他的数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:56 25 4
gpt4 key购买 nike

我正在构建一个包含两种类型用户的 API;管理员和访客。我创建了一个中间件,用于检查是否允许用户访问某些 API 端点,并将其设置如下:

app.all('/api/*', [require('./validateReq')]);

我的所有路线都是这样的:

/api/*
/api/admin/*

validateReq 检查 token 是否已传递且是否有效。如果有效,则请求正常处理。

我的用户模型有一个 bool 值admin,它与 token 结合验证其他/api/admin路由。

我现在的问题是如何确保用户只修改他的数据。一个例子是他是否正在更新他的个人资料。什么可以阻止其他用户修改其他用户的个人资料?我的保护仅在允许登录用户访问 /api 路由和管理员用户访问 /api/admin 路由时有效。

我需要类似“currentUser”字段的内容,我可以从任何地方访问它并在我的所有路由中检查它。

最佳答案

  1. 您的每个用户都需要 ID。
  2. 当您验证用户身份时,您会检查他的 ID 是否正确。
  3. 当用户尝试修改任何数据时,您必须检查该数据是什么。该检查是在 route 进行的。 (例如,每个用户的个人资料都有此用户 ID,并且在更新时添加条件“profileUserId ===authenticateUserId”)

认证过程中如何获取userId?如果您不确定如何实现它,您应该阅读它,因为它是重要的安全功能,例如 http://passportjs.org/docs (这是此作业的 super 模块)。简而言之,如果您通过 session 进行身份验证,则将 id 存储在 session 中。

关于node.js - 检查用户是否只更改他的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34878489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com