REST api - 客户端应如何为请求 URL 为其用户资源提供用户 ID?
REST api - How should the client supply userid to the request URL for its user resource?
客户端第一次需要使用 username/password 登录。为将来的请求返回一个 JWT 令牌。令牌将有一个用户标识,以便服务器可以从数据库中获取用户的资源。
我遇到的问题是客户端需要形成请求 URL 来更新其资源,比方说 POST /users/{userid}。我应该如何获取客户端的用户标识?我无法访问存储在 httpOnly 安全 cookie 中的 JWT 令牌。我应该以某种方式将用户标识存储在客户端上吗?这样它就可以将它用于 URL?
我现在明白你的问题了。您害怕失去 RESTFUL api 独特资源定位器
的一些优势
我经常有一组 URI,这些 URI 以指示操作是针对当前经过身份验证的用户的路径开头。
/current/profile
/current/blog_posts
在这种情况下,我将用户从服务器上的请求上下文中拉出来,我可以通过解析 JWT 令牌来获得它。
当我想对其他用户进行操作时,我改用标识符
/{{user_id}}/profile
/{{user_id}}/blog_posts
我不确定这是否严格 RESTFUL,但它确实为我的 API 用户提供了一个稳定且可发现的 URI。我已经在许多项目和团队中使用了这种模式,没有任何抱怨。
如果您真的必须获得用户标识符,您会想到两个想法:
- Return user_id 以及 jwt 令牌。
- 打一个额外的 API 电话
从服务器获取 user_id 然后将其用于所有
后续调用。
哦,我想到了另一个选择。更改您对 user_id 的概念并改用用户名(您已经拥有)。
客户端第一次需要使用 username/password 登录。为将来的请求返回一个 JWT 令牌。令牌将有一个用户标识,以便服务器可以从数据库中获取用户的资源。
我遇到的问题是客户端需要形成请求 URL 来更新其资源,比方说 POST /users/{userid}。我应该如何获取客户端的用户标识?我无法访问存储在 httpOnly 安全 cookie 中的 JWT 令牌。我应该以某种方式将用户标识存储在客户端上吗?这样它就可以将它用于 URL?
我现在明白你的问题了。您害怕失去 RESTFUL api 独特资源定位器
的一些优势我经常有一组 URI,这些 URI 以指示操作是针对当前经过身份验证的用户的路径开头。
/current/profile
/current/blog_posts
在这种情况下,我将用户从服务器上的请求上下文中拉出来,我可以通过解析 JWT 令牌来获得它。
当我想对其他用户进行操作时,我改用标识符
/{{user_id}}/profile
/{{user_id}}/blog_posts
我不确定这是否严格 RESTFUL,但它确实为我的 API 用户提供了一个稳定且可发现的 URI。我已经在许多项目和团队中使用了这种模式,没有任何抱怨。
如果您真的必须获得用户标识符,您会想到两个想法:
- Return user_id 以及 jwt 令牌。
- 打一个额外的 API 电话 从服务器获取 user_id 然后将其用于所有 后续调用。
哦,我想到了另一个选择。更改您对 user_id 的概念并改用用户名(您已经拥有)。