我想使用Backbone.js和Django構建單頁應用程序。如何檢查用戶在Django和Backbone.js中正確驗證
爲了檢查用戶被認證或沒有,
我寫在Django側的方法GET_IDENTITY方法。 如果request.user.is_authenticated爲true,則返回request.user.id,否則返回Http404
在骨幹方面,我定義了一個User模型並定期對get_identity進行ajax調用。
我認爲這是檢查用戶的最直接的方式進行身份驗證或沒有。
對於學習單頁面應用程序,如果可能的話,我希望這種操作比這種方式更明智更高效。
那麼你對此有何建議?當我搜索Django + Backbone.js +用戶認證時,我找不到任何令人滿意的結果,我真的很想知道人們如何做這個簡單的操作。
任何幫助或想法將不勝感激。
(順便我想定期讀取Cookie,但真正的HttpOnly標記Cookie不以客戶端reacheable。)
的Django的views.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});
}
''{{request.user.is_authenticated}}'''返回js無法理解的大寫True或False。我必須做'''var is_loggedin ='{{request.user.is_authenticated}}'=='True'? true:'';''' – chhantyal 2015-10-05 12:38:03
嘗試'{{request.user.is_authenticated | yesno:「true,false」}};' – eugene 2015-10-05 12:42:55
這很整齊。謝謝。 – chhantyal 2015-10-05 12:47:30