ajax – 如何检查该用户已经通过tastypie认证?

前端之家收集整理的这篇文章主要介绍了ajax – 如何检查该用户已经通过tastypie认证?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
用户在Django中进行身份验证时,如何从tastypie中检查?

用户登录后,该视图包含一些从API中提取数据的JS,该数据由tastypie支持.

我在资源上设置了基本身份验证/ djangoa授权,所以浏览器会弹出http auth窗口.有什么办法可以避免吗?

到目前为止,我的想法是扩展BasicAuthentication,以便它首先检查会话数据,何时找不到它,它将返回到http auth? AFAIK AJAX调用包括会话cookie,所以这在理论上应该工作?有没有人做过类似的事情?

我有这个解决方案到目前为止:
class 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,如果没有,则该密钥丢失.

任何人都可以想到这种方法可能导致的任何问题

原文链接:https://www.f2er.com/ajax/160063.html

猜你在找的Ajax相关文章