覆盖骨干.同步Rails API认证与设计
Override Backbone.sync for Rails API authentication with Devise
我试图重写骨干的.sync方法,以便为我的Rails API进行身份验证。我已经离开了这篇文章,我觉得我真的很接近弄清楚它。我有铁路方面的设置,但我有麻烦的事情的前端。我被另一篇文章中的部分卡住了
var token = YourAppName.csrfToken;
我不太确定用什么代替'YourAppName'。这是我到目前为止的主干代码。我的应用程序叫做' dropin ',当我把它加入时,我得到错误说它没有定义。
// overide backbone.sync
Backbone._sync = Backbone.sync;
Backbone.sync = function(method, model, options) {
if (!options.noCSRF) {
var beforeSend = options.beforeSend;
// Set X-CSRF-Token HTTP header
options.beforeSend = function(xhr) {
var token = Droppin.csrfToken;
if (token) xhr.setRequestHeader('X-CSRF-Token', token);
// this will include session information in the requests
xhr.withCredentials = true;
if (beforeSend) return beforeSend.apply(this, arguments);
};
}
var complete = options.complete;
options.complete = function(jqXHR, textStatus) {
// If response includes CSRF token we need to remember it
var token = jqXHR.getResponseHeader('X-CSRF-Token')
if (token) Droppin.csrfToken = token;
model.trigger('sync:end');
if (complete) complete(jqXHR, textStatus);
};
// Serialize data, optionally using paramRoot
if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {
options.contentType = 'application/json';
data = JSON.stringify(options.attrs || model.toJSON(options));
if (model.paramRoot) {
data = {};
data[model.paramRoot] = model.toJSON(options);
} else {
data = model.toJSON();
}
options.data = JSON.stringify(data);
}
return Backbone._sync(method, model, options);
};
我需要做什么才能抓住CSRF令牌并将其正确地附加到HTTP标头?我还应该提到,我正在使用require.js,并正在处理main.js文件中的覆盖(不确定这是否是正确的地方)。
您是否事先在代码的其他地方定义了Dropping
?例如,
window.Droppin = window.Dropping || {};
如果没有,当你尝试执行var token = Droppin.csrfToken;
时,Droppin将是未定义的,因此不会有属性csrfToken
相关文章:
- OWIN和表单认证的WEB API 2与SPA
- 如何向 Google API 发出经过认证的 RESTful oAuth 2 后端请求
- 声云 API 认证 |NodeWebkit,重定向URI和本地文件系统
- NettePHP框架和带有令牌认证的RESTful API
- 可以将JS MVC框架设置为具有api认证吗?
- 覆盖骨干.同步Rails API认证与设计
- 雅虎API认证后的问题
- Ember领英api认证令牌问题
- 来自React App的API的用户认证
- Foursquare API认证令牌
- 谷歌地图API认证,同时通过本地网络转发
- 认证通过.net web api 2从客户端-纯文本可见凭证
- Angular 2 - Twitter搜索api -仅应用程序认证错误400
- 如何实现OAuth 2.0,比如基于令牌的认证,用于从移动和javascript web应用程序访问的rest API
- Instagram API和导入照片没有服务器端认证
- 从sharepoint页面javascript调用office 365认证web api
- 认证AWS API网关通过javascript和凭据提供程序
- 针对restful API的Angular登录/认证
- 获取PDF通过REST API与头认证令牌,并显示在iframe
- Amazon API Gateway IAM认证的示例与生成的JS SDK