gpt4 book ai didi

django - 如何检查用户是否在 Django 和 Backbone.js 中正确验证

转载 作者:行者123 更新时间:2023-12-02 08:42:35 25 4
gpt4 key购买 nike

我想使用 Backbone.js 和 Django 构建单页应用程序。

用于检查用户是否通过身份验证,

我在django端写了一个get_identity方法。如果 request.user.is_authenticated 为真,则返回 request.user.id 否则返回 Http404

在主干端,我定义了一个用户模型并定期对 get_identity 进行 ajax 调用。

我认为这是检查用户是否已通过身份验证的最直接的方法。

对于单页应用的学习,如果可能的话,我想做的比这种操作更明智、更高效。

那么您对此有何建议?当我搜索 Django+Backbone.js + User Authentication 时,我找不到满意的结果,我真的很想知道人们是如何做这个简单的操作的。

任何帮助或想法将不胜感激。

(顺便说一下,我尝试定期读取 cookie,但客户端无法访问带有 HttpOnly True 标记的 cookie。)

Django View .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});
}

最佳答案

我的 base.html 中有 var is_authenticated = {{request.user.is_authenticated}};

并使用全局变量进行检查。

我正在寻求更好的解决方案(因为这会在您开始缓存时中断)。
但您可能会发现它很有用。

关于django - 如何检查用户是否在 Django 和 Backbone.js 中正确验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15265557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com