【发布时间】:2013-02-22 07:39:09
【问题描述】:
我想使用 Backbone.js 和 Django 构建单页应用程序。
用于检查用户是否通过身份验证,
我在django端写了一个get_identity方法。 如果 request.user.is_authenticated 为 true 则返回 request.user.id 否则返回 Http404
在主干方面,我定义了一个用户模型并定期对 get_identity 进行 ajax 调用。
我认为这是检查用户是否经过身份验证的最直接的方法。
为了学习单页应用,如果可能的话,我想把这个操作做的比这种方式更明智、更高效。
那么您对此有何建议?搜索 Django+Backbone.js + User Authentication 的时候,没找到满意的结果,不知道大家是怎么做这个简单的操作的。
任何帮助或想法将不胜感激。
(顺便说一下,我尝试定期读取 cookie,但客户端无法访问 HttpOnly True 标记的 cookie。)
Django 视图.py
def get_identity(request):
if not request.user.is_authenticated():
raise Http404
return HttpResponse(json.dumps({'identity':request.user.id}), mimetype="application/json")
Backbone.js 端。
updateUser:function(){
var $self=this;
$.ajaxSetup({async:false});
$.get(
'/get_identity',
function(response){
// update model...
$self.user.id =response.identity;
//check user every five minutes...
$self.user.fetch({success: function() {
$self.user.set('is_authenticated',true);
setTimeout($self.updateUser, 1000*60*1);
}
},this);
}).fail(function(){
//clear model
$self.user.clear().set($self.user.defaults);
setTimeout($self.updateUser, 1000*60*1);
});
$.ajaxSetup({async:true});
}
【问题讨论】:
标签: django authentication backbone.js