我正在为我的组织开发一个网络应用程序(比方说“students.uni”和“academics.uni”)。我的组织使用 Google 服务,因此这些是 google 域,我想限制仅对那些使用以下域的应用程序的访问'social_django' 我正在使用 Django 2.0.6 和 Python 3.6.5
我用它来限制对应用程序的访问,效果很好:
SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS = ['student.uni', 'academics.uni']
Run Code Online (Sandbox Code Playgroud)
当我登录或注册允许的帐户时,效果很好,但是,当帐户的域不允许时,我想将用户重定向或发送到另一个页面,让他知道发生了什么。
我一直在尝试:
SOCIAL_AUTH_LOGIN_ERROR_URL = 'principal'
Run Code Online (Sandbox Code Playgroud)
但我无法让它工作,因为如果我设置,我会不断收到 AuthForbidden 异常或 500 错误DEBUG = False
关于在不允许域时如何重定向或发送消息的任何建议?非常感谢
一些代码:
Settings.py(不是全部,但相关代码)
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'apps.user',
'apps.inv',
'apps.sol',
'social_django',
]
AUTHENTICATION_BACKENDS = (
'social_core.backends.open_id.OpenIdAuth', # for Google authentication
'social_core.backends.google.GoogleOpenId', # for Google authentication
'social_core.backends.google.GoogleOAuth2', # for Google authentication
'django.contrib.auth.backends.ModelBackend',
)
LOGIN_URL = 'login'
LOGIN_REDIRECT_URL = 'principal'
#DEBUG = False
SOCIAL_AUTH_LOGIN_ERROR_URL = 'principal'
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY ='****.apps.googleusercontent.com' …Run Code Online (Sandbox Code Playgroud)