【问题标题】:Should I put a user id in a REST url or get it from authentication我应该将用户 ID 放在 REST url 中还是从身份验证中获取
【发布时间】:2016-03-13 06:29:31
【问题描述】:

我正在使用 Express.js 构建一个 RESTful api。假设我有一些Users 拥有Resources。获取特定UserResources 的好方法是:GET /users/:user_id/resources

我为 api 实现了身份验证,因此可以从 req.user.user_id 而不是从 url 获取 user_id。这意味着我可以使用GET /resources 从经过身份验证的用户那里获取资源。

我的问题:这是一种好的做法吗?为什么(或为什么不)?

【问题讨论】:

    标签: node.js api rest authentication express


    【解决方案1】:

    我认为,这是不好的做法。资源应该返回所有资源,而不是以任何方式过滤。我会说最好有一个额外的端点/user/resources。这样,响应将是:

    1. /users/15/resources - 如果允许,将为用户 15 或 403 提供资源。
    2. /user/resources - 将为经过身份验证的用户提供资源(如果我是用户 15,那么这将给出与 1 中相同的响应。)或 404 或 403。
    3. /resources - 将提供未过滤的资源(如果禁止,则不要创建此端点,或仅返回公共资源)。

    【讨论】:

    • 我没想过使用/user/resources 作为端点。用户的奇异性确实表明检索到的资源属于单个用户。我想很明显user_id 在这种情况下是从身份验证中检索到的。谢谢!
    猜你喜欢
    • 2015-06-09
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2023-03-19
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多