0

我正在制作一个 REST 服务器,它将同时具有单页应用程序形式的 Web 客户端和本机移动应用程序形式的 Web 客户端。我正在研究使用 JWT 使服务器无状态。到目前为止,我的理解是:

  1. 身份验证端点在提供正确的凭据后返回两个令牌,即访问令牌和刷新令牌。
  2. 出于安全原因,这些令牌应存储在浏览器上的“httpOnly”cookie 中。

据我所知,本机移动应用程序没有 cookie 存储,因此它们有一些其他数据存储用于应用程序,例如数据库。那么,我是否需要为这些不同的应用程序实现两个不同的端点?我想做的是:

  1. 端点 1(对于单点应用程序):接受 json 中的用户凭据并在 cookie 中返回 jwt
  2. 端点 2(对于本机移动应用程序):接受 json 中的用户凭据并返回原始 json 正文中的 jwt。

上述方法是否正确,或者我们对它们都有一个端点。还可以帮助如何使用 django-rest-framework-simplejwt 实现这一目标。

4

1 回答 1

0

您不需要为 SPA 和移动应用程序创建两个不同的身份验证视图。在移动设备上,您只需要以某种方式将刷新和访问令牌存储在设备上,无论它是在内存中还是在磁盘上或其他任何地方。但是无论哪种方式,您都会从相同的视图中获得令牌。然后您需要将它们包含在Authorization标头中,其中包含对您的 API 的任何需要授权的请求,如此处的文档中所述:https ://github.com/davesque/django-rest-framework-simplejwt#usage

于 2019-12-09T22:36:39.000 回答