SPA 使用的经过身份验证的 Rest API:如何获取用于登录和注册表单的 CSRF 令牌?

Authenticated Rest API used by a SPA : how to get CSRF token for login and registration forms?

我有一个单页应用程序,它在我正在构建的 api 休息时使用和验证。 整个 SPA 都是在没有认证的情况下加载的。

我知道我将如何处理 csrf 令牌,一旦它们在 cookie 中。

对于登录和注册表单,我还没有 CSRF 令牌,因为它们不是服务器呈现的页面。 我是否需要创建一个获取端点“/loadCSRFTokens”来加载 cookie?

什么是好的做法?人们通常做什么?

我使用的技术是 Angular 和 Spring-security。

当我发布问题时,我有两个服务器:

  • 1 用于加载 SPA
  • 1 为所有其余 API

我相信只有您从中加载 SPA 的服务器才能在您的浏览器上设置 cookie。 因此,由于该服务器无论如何都需要能够设置 cookie,因此它可以响应请求 'load SPA home page' 并且不需要“/loadCSRFTokens”端点。

我通过在其余 API 服务器端点之一上将 SPA 作为静态内容提供来解决我的问题。