[英]Django: correctly serialize custom authentication backend
我在Django 1.10中有一個自定義身份驗證后端。 如果我登錄,我得到TypeError: <class 'CustomAuthBackend'> is not JSON serializable
。 我可以通過在settings.py
放置SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'
來使整個過程工作,但是,正如許多舊問題所指出的, PickleSerializer
是不安全的,我需要一個更好的方法。
如何為我的身份驗證后端編寫正確的序列化程序? 我嘗試使用https://github.com/caffeinehit/django-oauth2-provider/pull/56/files中的一些代碼(將serialize()
和deserialize()
到我的身份驗證后端類,並將serialize_instance()
和deserialize_instance
分開職能)。 我不能得到這種方法,任何建議嗎?
我所有的上述建議都是不必要的(而且過於復雜,因為我發現的解決方案要簡單得多)。
我只需要在return user
之前在后端的authenticate方法中添加user.backend=CustomAuthBackend
行。 解決了我所有的問題。
我正在進行自定義身份驗證並且運行正常,但是當嘗試以Json發送響應時,它給我的錯誤CustomAuthentication不是JSON序列化。
所以我在settings.py中添加了
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
注意:我使用Django 1.10和基於類的視圖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.