javascript - 使用每个主干同步请求发送 token

标签 javascript api backbone.js coffeescript

我的 PHP api 要求从我的前端 Backbone 应用程序发出的每个请求都提交一个用户 token ,以确保用户...

  1. 活跃
  2. 有权访问该资源

在 Backbone 中设置它的最简单方法是什么?我猜唯一的方法是覆盖 Backbone.sync,但是代码会是什么样子呢?首选 CoffeeScript。

编辑

还有两件事
1. 如果出现 403: Access Forbidden Error
,我想将用户重定向到 /login 2. 当应用程序启动时,我从 localStorage 中提取包含 token 的用户模型
3. 我有一个 baseModel 和 baseCollection,所有模型/集合都来自

最佳答案

Backbone 使用 jQuery 的 $.ajax , 所以你可以使用 $.ajaxSetup “为 future 的 Ajax 请求设置默认值”:

$.ajaxSetup({
   headers: {
     "accept": "application/json",
     "token": YOUR_TOKEN
   }
});

更新:这个想法的改进(感谢@Glen)是使用$.ajaxSend每次在请求的 header 中设置 token 之前检查 token 是否存在:

$(document).ajaxSend(function(event, request) {
   var token = App.getAuthToken();
   if (token) {
      request.setRequestHeader("token", token);
   }
});

其中 App.getAuthToken() 是您的 Backbone 应用程序中的一个函数。

关于javascript - 使用每个主干同步请求发送 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203928/

相关文章:

javascript - html,javascript,如何知道复选框何时更改状态

javascript - 如何在 map 容器的特定位置显示目标位置

javascript - 物化CSS : How to Toggle 2 Notifications When Pressing One button (On and Off)

javascript - 随内容移动背景

json - HTTP PATCH : Handling arrays, 删除和嵌套 key 创建

.net - 产品 API 综合列表

javascript - Backbone.js:将更改后的模型 ID 保存到服务器的最佳方式

Python oauth2 - 发出请求

javascript - 为什么主干 View 检测不到模型更改?

javascript - 我的 backbone.js View 不呈现任何内容