我正在尝试对 Angular 应用程序的 ajax 请求实施 antiforgerytokens。
防伪令牌是否有生命周期?如果我在没有触摸它的情况下在网络浏览器中打开应用程序很长时间,比如说一个月。ajax 请求是否会因令牌过期而失败?
令牌可以重复用于多次调用吗?我可以在页面某处保留一个令牌并为所有 ajax 调用检索它吗?
我正在尝试对 Angular 应用程序的 ajax 请求实施 antiforgerytokens。
防伪令牌是否有生命周期?如果我在没有触摸它的情况下在网络浏览器中打开应用程序很长时间,比如说一个月。ajax 请求是否会因令牌过期而失败?
令牌可以重复用于多次调用吗?我可以在页面某处保留一个令牌并为所有 ajax 调用检索它吗?
实际上 API 应该被第 3 方使用,但是与 AFT 的单页接口有什么关系呢?
我担心他们仍然需要 AFT 以防止 CSRF 攻击。这是在Ajax 请求中使用它们的好方法。
防伪令牌按会话生成,并保留在会话数据中直到过期。对于新会话,将生成新令牌。是的,单个令牌可以在同一个会话中多次重复使用。
请检查我添加的链接,有如何为 Ajax 请求获取令牌的示例。
ajax 请求是否会因令牌过期而失败?是的
令牌可以重复用于多次调用吗?不
但是,最好问自己一个问题,为什么首先要使用 AJAX 的防伪令牌。如果您使用的是 AJAX,那么您使用的是 API,即使您尚未将其正式化(只是用于 AJAX/其他无头通信的操作/控制器的集合)。防伪令牌不能很好地与 API 配合使用,因为 1) API 通常允许第三方访问;2) 即使它们不允许,也有更好的方法来保护它们。
如果您想确保只有您的站点可以访问您的“API”,请实施 HTTP 身份验证或其他一些方案来验证您对“API”的请求。这就是您允许长时间运行的会话不会失败的方式。