我正在使用social-app-django(python-social-auth 的一部分)為我的 Django 網站的用戶實現 Facebook 登錄。我有一個要求,用戶必須先在本地用戶數據庫中找到,然后才能使用 Facebook 登錄。我已經替換了身份驗證管道的 auth_allowed-part 來執行此檢查:def auth_allowed(backend, details, response, *args, **kwargs): if not backend.auth_allowed(response, details) or not is_registered_user(response, details): raise AuthForbidden(backend)whereis_registered_user()是一個自定義函數,用于檢查用戶是否在本地存在。我的問題是,如果此檢查失敗并引發異常,用戶不會被重定向到登錄錯誤 URLAuthForbidden。相反,該站點返回 500。錯誤頁面 URL 在 settings.py 中配置如下:LOGIN_ERROR_URL = "/"我正在使用 Django CMS,因此我還嘗試實現中間件,SocialAuthExceptionMiddleware該中間件會覆蓋(應該AuthForbidden在標準設置中處理異常)以返回 CMS 頁面而不是來自 settings.py 的 URL,但在過程,據我所知。有想法該怎么解決這個嗎?我錯過了一些配置嗎?
1 回答

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
我想我解決了這個問題:我不小心使用了
social.apps.django_app.middleware.SocialAuthExceptionMiddleware
代替
social_django.middleware.SocialAuthExceptionMiddleware
當提到異常處理中間件時。該錯誤很可能是在升級django-social-auth
到python-social-auth
/social-app-django
之前引入的。
添加回答
舉報
0/150
提交
取消