SPA 使用的经过身份验证的 Rest API:如何获取用于登录和注册表单的 CSRF 令牌?
Posted
技术标签:
【中文标题】SPA 使用的经过身份验证的 Rest API:如何获取用于登录和注册表单的 CSRF 令牌?【英文标题】:Authenticated Rest API used by a SPA : how to get CSRF token for login and registration forms? 【发布时间】:2020-03-26 14:10:55 【问题描述】:我有一个单页应用程序,它在我正在构建的 rest api 上使用和验证。 整个 SPA 无需身份验证即可加载。
我知道一旦 csrf 令牌在 cookie 中,我将如何处理它们。
对于登录和注册表单,我还没有 CSRF 令牌,因为它们不是服务器呈现的页面。 我是否需要创建一个获取端点“/loadCSRFTokens”来加载 cookie?
什么是好的做法?人们通常会做什么?
我使用的技术是 Angular 和 Spring-security。
【问题讨论】:
【参考方案1】:当我发布问题时,我有两台服务器:
1 用于加载 SPA 1 个用于所有其他 API我相信只有您从中加载 SPA 的服务器才能在您的浏览器上设置 cookie。 因此,由于该服务器无论如何都需要能够设置 cookie,因此它可以响应请求“加载 SPA 主页”并且不需要“/loadCSRFTokens”端点。
我通过将 SPA 作为静态内容提供给 rest-API 服务器的一个端点解决了我的问题。
【讨论】:
以上是关于SPA 使用的经过身份验证的 Rest API:如何获取用于登录和注册表单的 CSRF 令牌?的主要内容,如果未能解决你的问题,请参考以下文章
Firestore REST API 使用 http-client 发出经过身份验证的请求
处理django rest framework + vue SPA auth
处理 django rest framework + vue SPA auth
作为经过身份验证的用户,我可以使用 ArcGIS REST-API“applyEdits”来更新要素层吗?
如何使用 REST API 使用 Google Ads API v0 获取经过身份验证的用户的 Google Ad Account ID?