在 JWT 的情况下,SPA 和移动应用程序是否会访问相同的身份验证端点?

Do both SPAs and mobile applications hit the same endpoint for Authentication in case of JWTs?

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

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

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

  1. 端点 1(对于单点应用程序):在 json 和 Returns jwt inside cookies
  2. 中接受用户凭证
  3. 端点 2(对于本机移动应用程序):接受 json 中的用户凭据和原始 json 正文中的 Returns jwt。

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

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