我在Django 1.10中有一个自定义身份验证后端。如果我登录,我会得到TypeError: <class 'CustomAuthBackend'> is not JSON serializable
。我可以通过将SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'
放入settings.py
来完成整个过程,但正如许多旧问题所指出的那样PickleSerializer
是不安全的,我需要更好的方法。
如何为我的身份验证后端编写正确的序列化程序?我尝试使用https://github.com/caffeinehit/django-oauth2-provider/pull/56/files中的一些代码(将serialize()
和deserialize()
添加到我的身份验证后端类,并将serialize_instance()
和deserialize_instance
作为单独的函数)。我不能得到这种方法,任何建议吗?
答案 0 :(得分:0)
我提出的所有上述建议都是不必要的(而且过于复杂,因为我发现的解决方案要简单得多)。
我只需要在user.backend=CustomAuthBackend
之前的后端验证方法中添加行return user
。解决了我所有的问题。
答案 1 :(得分:0)
我正在进行自定义身份验证并且运行正常,但是当尝试以Json发送响应时,它给我的错误CustomAuthentication不是JSON序列化。
所以我添加了我的settings.py
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
注意:我正在使用Django 1.10和基于类的视图