簡體   English   中英

Django:正確序列化自定義身份驗證后端

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM