为什么我的学校CAS服务器在认证后没有重定向到我的网站?
我正在尝试制作一个只有滑铁卢大学的学生才能使用的网站。这个网站使用CAS来进行身份验证。我开始使用django_cas这个包,基本上按照步骤来做。以下是我测试的内容:
重定向到CAS登录页面 - 成功
在CAS服务器上验证用户 - 成功
重定向回网站 - 失败
(更新:添加代码以澄清) 解决方案:
看起来我把CAS_SERVER_URL设置错了。 我学校的CAS服务器应该用https而不是http
cas_django需要稍微配置一下:
## in settings.py
CAS_SERVER_URL = 'http://cas-dev.uwaterloo.ca/cas/'
LOGIN_URL = '/accounts/login/'
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django_cas.middleware.CASMiddleware',
)
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_cas.backends.CASBackend',
)
## in urls.py
(r'^accounts/login/$', 'django_cas.views.login'),
(r'^accounts/logout/$', 'django_cas.views.logout'),
## in views.py
@login_required
def sample(request):
return render_to_response('sample.html')
我得到了一个404错误:
请求的URL /cas/login/http://uwnetwork.shaon.ca/accounts/login/?next=%2Fsample%2F 在这个服务器上没有找到。
有没有人知道为什么重定向会失败?
1 个回答
0
你提供的信息不够,让别人很难给出有用的回答。
你可以试试以下几点:
- 确保你按照django_cas的说明正确设置了CAS_SERVER_URL。
- 和你的学校联系,确认CAS服务器是否允许重定向到你的应用程序。因为在用户成功登录后,会有一些用户信息传递给应用,所以有可能服务器只允许在.uwaterloo.ca这个域名下的网站进行用户认证。