2

我正在尝试制作一个只有滑铁卢大学学生才能使用的网站。它使用 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。

有人知道为什么它会重定向失败吗?

4

1 回答 1

0

您并没有真正提供足够的信息让某人给您一个有意义的答案。

尝试以下操作:

  1. 确保按照 django_cas 文档正确设置 CAS_SERVER_URL。
  2. 与您的大学联系,以确保允许 CAS 服务器重定向到您的应用程序。由于有关用户的一些信息在成功验证后传递给应用程序,因此服务器可能配置为仅允许托管在 .uwaterloo.ca 域内的站点对用户进行验证。
于 2011-03-20T23:00:27.920 回答