当用户在Django中进行身份验证时,如何从tastypie中检查?
用户登录后,该视图包含一些从API中提取数据的JS,该数据由tastypie支持.
我在资源上设置了基本身份验证/ djangoa授权,所以浏览器会弹出http auth窗口.有什么办法可以避免吗?
到目前为止,我的想法是扩展BasicAuthentication,以便它首先检查会话数据,何时找不到它,它将返回到http auth? AFAIK AJAX调用包括会话cookie,所以这在理论上应该工作?有没有人做过类似的事情?
我有这个解决方案到目前为止:
原文链接:https://www.f2er.com/ajax/160063.htmlclass MyBasicAuthentication(BasicAuthentication): def __init__(self,*args,**kwargs): super(MyBasicAuthentication,self).__init__(*args,**kwargs) def is_authenticated(self,request,**kwargs): from django.contrib.sessions.models import Session if 'sessionid' in request.COOKIES: s = Session.objects.get(pk=request.COOKIES['sessionid']) if '_auth_user_id' in s.get_decoded(): u = User.objects.get(id=s.get_decoded()['_auth_user_id']) request.user = u return True return super(MyBasicAuthentication,self).is_authenticated(request,**kwargs)
这似乎是我想要的.如果用户登录,则会话包含_auth_user_id,如果没有,则该密钥丢失.
任何人都可以想到这种方法可能导致的任何问题