Rest 在使用JWTs的情况下,SPA和移动应用程序是否都使用相同的端点进行身份验证?

Rest 在使用JWTs的情况下,SPA和移动应用程序是否都使用相同的端点进行身份验证?,rest,jwt,single-page-application,django-rest-framework-simplejwt,Rest,Jwt,Single Page Application,Django Rest Framework Simplejwt,我正在制作一个REST服务器,它既有单页应用程序形式的web客户端,也有本机移动应用程序形式的web客户端。我正在研究如何使用JWTs使服务器无状态。 到目前为止,我所理解的是: 身份验证端点在提供正确的凭据后返回两个令牌,即访问令牌和刷新令牌 出于安全原因,这些令牌应存储在浏览器上的“httpOnly”cookie中 据我所知,本地移动应用程序没有cookies存储,因此它们为应用程序(如数据库)提供了一些其他数据存储。那么,我是否需要为这些不同的应用程序实现两个不同的端点?我想做的是: 端点

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

  • 身份验证端点在提供正确的凭据后返回两个令牌,即访问令牌和刷新令牌
  • 出于安全原因,这些令牌应存储在浏览器上的“httpOnly”cookie中
  • 据我所知,本地移动应用程序没有cookies存储,因此它们为应用程序(如数据库)提供了一些其他数据存储。那么,我是否需要为这些不同的应用程序实现两个不同的端点?我想做的是:

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

  • 上述方法是正确的,还是两者都有一个端点。还可以帮助您使用django rest framework simplejwt实现这一点。

    您不需要为SPA和移动应用程序创建两个不同的身份验证视图。在移动设备上,您只需将刷新和访问令牌以某种方式存储在设备上,无论是内存中还是磁盘上,或者其他什么。但无论哪种方式,您都将从相同的视图中获得令牌。然后,您需要将它们包括在
    授权
    标题中,以及对您的API的任何需要授权的请求,如此处文档中所述:

    感谢您的回答。我想让您更具体地了解如何以安全的方式在web浏览器上存储令牌。若我们必须将其存储在httponly cookie中,那个么服务器需要设置它。我想将其存储在浏览器存储中,但前提是它是安全的。这是一个部分接受的答案。我想让你多解释一下。