2017-05-30 61 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