Models in Backbone retrieve, update, and destroy data using the methods fetch
, save
, and destroy
. These methods delegate the actual request portion to Backbone.sync. Under the hood, all Backbone.sync
is doing is creating an ajax request using jQuery. In order to incorporate your Basic HTTP authentication you have a couple of options.
fetch
, save
, and destroy
all accept an additional parameter [options]
. These [options]
are simply a dictionary of jQuery request options that get included into jQuery ajax call that is made. This means you can easily define a simple method which appends the authentication:
sendAuthentication = function (xhr) {
var user = "myusername";// your actual username
var pass = "mypassword";// your actual password
var token = user.concat(":", pass);
xhr.setRequestHeader('Authorization', ("Basic ".concat(btoa(token))));
}
And include it in each fetch
, save
, and destroy
call you make. Like so:
fetch({
beforeSend: sendAuthentication
});
This can create quite a bit of repetition. Another option could be to override the Backbone.sync
method, copy the original code and just include the beforeSend
option into each jQuery ajax request that is made.
Hope this helps!
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…