在 body 或令牌中传递用户 ID

Passing user ID in body or in token

我正在构建 REST API。 API 运行 JWT 身份验证系统。

显然,这意味着安全路径需要在授权 Header 中随请求一起传递有效的 JWT 令牌。在我拥有的每个 jwt 令牌中:

    sub: 1 //_id

其中 sub 是当前已验证用户的 ID。

我的问题是,当我传递这个令牌时,是否还需要在请求中传递用户 ID body?例如,我有一个创建前提的方法。这需要 post body 来包含名称和描述,如下所示:

    {
        name: "Test Premises",
        description: "Lorem Ipsum"
    }

在这种情况下,API 必须通过验证传递的令牌是否有效来找到关联新场所的用户,然后对其进行解密并检索子字段。

这个方法可以吗?

有什么缺点吗?

我是否也应该在 body 中传递 ID?

is this method ok

是的,这就是身份验证令牌的意义所在。

should I be passing Id's in the body aswell?

如果您允许从客户端发送用户 ID,那么您 确实 存在很大的安全漏洞,例如如果另一个经过身份验证的用户知道(或欺骗)他们的 ID,则他们可以代表另一个用户创建场所。