REST api - 客户端应如何向其用户资源的请求 URL 提供用户 ID?

标签 rest web webserver token jwt

客户端第一次需要使用用户名/密码登录。为将来的请求返回一个 JWT token 。 token 将有一个用户标识,以便服务器可以从数据库中获取用户的资源。

我遇到的问题是客户端需要形成请求 URL 来更新其资源,比方说 POST/users/{userid}。我应该如何获取客户端的用户标识?我无法访问存储在 httpOnly 安全 cookie 中的 JWT token 。我应该以某种方式将用户标识存储在客户端上吗?以便它可以将其用于 URL?

最佳答案

我现在明白你的问题了。你害怕失去 RESTFUL api 的一些优势,一个独特的资源定位器,

我经常有一组 URI,这些 URI 以指示操作是针对当前经过身份验证的用户的路径开头。

/current/profile
/current/blog_posts

在这种情况下,我将用户从服务器上的请求上下文中拉出来,我可以通过解析 JWT token 来获得它。

当我想对其他用户进行操作时,我会改用标识符

/{{user_id}}/profile
/{{user_id}}/blog_posts

我不确定这是否是严格的 RESTFUL,但它确实为我的 API 用户提供了一个稳定且可发现的 URI。我已经在许多项目和团队中使用了这种模式,没有任何提示。

如果你真的必须得到一个用户标识符,我会想到两个想法:

  • 返回 user_id 和 jwt token 。
  • 进行额外的 API 调用 从服务器获取 user_id,然后将其用于所有 随后的电话。

哦,我想到了另一个选择。更改您对 user_id 的概念并改用用户名(您已经拥有)。

关于REST api - 客户端应如何向其用户资源的请求 URL 提供用户 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37054048/

相关文章:

javascript - Paint JS改变颜色onclick

webserver - kdb/q : Increase visible rows in browser

javascript - 指向我的服务器上的文件

web-services - RESTful Web 服务和 HTTP 动词

java - 使用 Hystrix 包装 SOAP 调用 (WebServiceGatewaySupport)

javascript - Phonegap 中的 Jquery ajax 调用到 RESTful API

javascript - 检测存在哪些 Unicode 字形?

python - 如何模拟点击 "Next"直到结束?

c# - 如何为 .Net 应用程序提供 Web 界面

php - 在 PHP 中使用 CURL 将登录 POST 到远程 auth 函数/php 文件