2017-05-30 59 views
1

我在Django 1.10自定义的认证后端。如果我登录,我会得到TypeError: <class 'CustomAuthBackend'> is not JSON serializable。我可以通过将SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'settings.py使整个过程的工作,但是,在许多老问题指出,PickleSerializer是不安全的,我需要一个更好的方法。Django的:正确序列化的自定义认证后端

我怎样写我的认证后端一个正确的序列化?我尝试使用从https://github.com/caffeinehit/django-oauth2-provider/pull/56/files(添加serialize()deserialize()到我认证后端类和具有serialize_instance()deserialize_instance作为单独的功能)的一些代码。我无法得到这种方法工作,有什么建议吗?

回答

0

所有的上述建议我是没有必要的(和过于复杂,因为我找到了解决办法就简单多了)。

我只需要在后端的验证方法中添加行user.backend=CustomAuthBackend,就在return user之前。解决了我所有的问题。

0

我就是这么做的自定义身份验证,它被罚款运行,但试图发送响应为JSON这是给我错误CustomAuthentication的时候是不是JSON序列化。

,所以我说在我的settings.py

SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'

注:我使用Django 1.10基于类的意见

+0

这篇文章看起来不像是试图回答这个问题。预计这里的每一篇文章都是明确地试图回答这个问题。如果您有批评意见或需要澄清问题或其他答案,您可以[直接在其下面发表评论](// stackoverflow.com/help/privileges/comment)(如本文所述)。请删除此答案并创建一条评论或一个新问题。请参阅:[提问,获得答案,没有分心](// stackoverflow.com/tour) – FrankerZ

+0

如果您有新问题,请点击[提问](https://stackoverflow.com/questions/问)按钮。如果有助于提供上下文,请包含此问题的链接。 - [来自评论](/ review/low-quality-posts/18915487) – npf

+0

改回为答案。 – jahmed31