环境: python3.8+django3.2.20
服务端配置
安装
pip install django-mama-cas==2.5.0
settings.py配置
INSTALLED_APPS = [
'mama_cas',# 添加 mama_cas 到 INSTALLED_APPS
]
# 添加CAS配置 客户端127.0.0.1:8001,http://127.0.0.1:8002能访问
MAMA_CAS_SERVICES = [
{
# 必填项,客户端允许访问的域名,
'SERVICE': 'http://127.0.0.1:8001',
'CALLBACKS': ['mama_cas.callbacks.user_model_attributes', ],
}, {
'SERVICE': 'http://127.0.0.1:8002',
'CALLBACKS': ['mama_cas.callbacks.user_model_attributes', ],
},
]
urls.py配置
urlpatterns = [
path('', include('mama_cas.urls')), # 导入mama_cas应用到urls.py
]
对应表生成
客户端配置
安装
pip install django-cas-ng==4.3.0
settings.py配置
INSTALLED_APPS = [
……,
'django_cas_ng', # 安装客户端应用,添加到INSTALLED_APPS
]
# 指定授权认证的后端
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_cas_ng.backends.CASBackend',
)
MIDDLEWARE = [
……,
'django_cas_ng.middleware.CASMiddleware' #添加cas客户端的中间件类
]
CAS_SERVER_URL = 'http://192.168.1.100:7000/' # 服务端链接
CAS_VERSION = '3' # CAS 协议版本,可选值为 1、2 或 3,默认为 2
CAS_ADMIN_PREFIX = 'admin/'
CAS_IGNORE_REFERER = True
CAS_LOGOUT_COMPLETELY = True
# 存入所有 CAS 服务端返回的 User 数据。
CAS_APPLY_ATTRIBUTES_TO_USER = True
urls.py配置
from django_cas_ng.views import LoginView, LogoutView
def index_csa(request):
# 判断是否登录的
if request.user.is_authenticated:
return HttpResponse(
f'<p>您已登录<strong>{request.user.username}【{request.user.first_name}】</strong>.</p><p><a href="/accounts/logout">Logout</a></p>')
else:
return HttpResponse(
'<p><a href="/accounts/login">Login</a></p>')
urlpatterns = [
path('accounts/login', LoginView.as_view(), name='cas_ng_login'),
path('accounts/logout', LogoutView.as_view(), name='cas_ng_logout'),
path('', index_csa, name='index_csa'),
]
对应表生成