小编V. *_*ldo的帖子

SOCIAL_AUTH_LOGIN_ERROR_URL 不起作用 Django 2.0.6

我正在为我的组织开发一个网络应用程序(比方说“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)

python django oauth oauth-2.0 google-plus

5
推荐指数
1
解决办法
4171
查看次数

标签 统计

django ×1

google-plus ×1

oauth ×1

oauth-2.0 ×1

python ×1