【发布时间】:2013-11-28 16:13:59
【问题描述】:
我是 jQuery Mobile 和 Backbone.js 的新手,并尝试在客户端创建一个移动应用程序 - 使用基于 django rest 框架的 API。
当我将我的用户名和密码发布到我的 api 时,我会得到 {token: "<mytoken>"},我必须在我的应用程序的每个未来请求中拦截并添加到标题 "Authorization: Token <mytoken>"。我该怎么做?
我读过 Good idea to use REST token authentication for AJAX web apps? 和 How use token authentication with Rails, Devise and Backbone.js? ,但我仍然不明白如何将其集成到我的授权中。
有人可以帮我解决这个问题吗?谢谢!
my login view:
var LoginView = Backbone.View.extend({
events: {
"click #login": "login",
},
initialize: function () {
this.template = $.tpl['login-form'];
},
render: function (eventName) {
$(this.el).html(this.template());
this.username = $("#username", this.el);
this.password = $("#password", this.el);
return this;
},
login: function () {
console.log('entered');
if (!this.username.val() || !this.password.val()) {
return false;
}
var user = new User({
username : this.username.val(),
password : this.password.val(),
});
user.save({}, {success: function() {
window.workspace.navigate('#transaction/list', { trigger: true });
return true;
}});
return false;
}
});
user model:
var User = Backbone.Model.extend({
defaults: {
username: "",
password: ""
},
url:"http://localhost/rest2/api-token-auth/"
});
template:
<div data-role="fieldcontain" class="ui-hide-label">
<input id="username" name="username" type="text" placeholder="username"/>
</div>
<div data-role="fieldcontain" class="ui-hide-label">
<input name="password" id="password" type="text" placeholder="password"/></input>
</div>
<a name="login" id="login" data-role="button">login</a>
</div>
【问题讨论】:
标签: javascript jquery django backbone.js access-token