python学习04--django集成CAS客户端
前言
可参考官方文档:django-cas-ng
一、CAS客户端
Python 有开源的 CAS 客户端 python-cas,直接选用封装好的 Django 应用 django-cas-ng 。
1.新建一个Django项目,前面已讲,
2.安装依赖
pip install django-cas-ng
3.配置Django_cas_ng,在settings文件中
配置INSTALLED_APPS,安装CAS应用
'django_cas_ng' #安装客户端应用
配置MIDDLEWARE,
MIDDLEWARE = [
'django_cas_ng.middleware.CASMiddleware' #添加cas客户端的中间件类
]
配置AUTHENTICATION_BACKENDS,
# 指定授权认证的后端
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
'django_cas_ng.backends.CASBackend',
)
配置CAS服务器的URL和CAS协议版本
CAS_SERVER_URL = 'http://127.0.0.1:8443/cas'
CAS_VERSION = '3'
# 存入所有 CAS 服务端返回的 User 数据。
CAS_APPLY_ATTRIBUTES_TO_USER = True
4.创建一个views.py文件夹,并编写index的方法
from django.http import HttpResponse
def index(request):
# 判断是否登录的
if request.user.is_authenticated:
return HttpResponse('<p>Welcome to <a href="https://djangocas.dev">django-cas-ng</a>.</p><p>You logged in as <strong>%s</strong>.</p><p><a href="/accounts/logout">Logout</a></p>' % request.user)
else:
return HttpResponse('<p>Welcome to <a href="https://djangocas.dev">django-cas-ng</a>.</p><p><a href="/accounts/login">Login</a></p>')
5.urls.py文件
from django.contrib import admin
from django.urls import path
import django_cas_ng.views
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('admin/', admin.site.urls),
path('accounts/login', django_cas_ng.views.LoginView.as_view(), name='cas_ng_login'),
path('accounts/logout', django_cas_ng.views.LogoutView.as_view(), name='cas_ng_logout'),
]
6.初始化
python manage.py migrate
7.运行
python manage.py runserver
后记
由于后面改成了公司项目的cas服务器地址,html文件也改了些,跟代码不符合了,就没有放运行后的截图,不过按照流程还是可以的。
在views编写那里,曾尝试 用middlewares拦截器中间件,结果没有成功。还需要再更深入的学习django框架,了解一个完整的django项目,拿来练手了解CAS的登录流程还是可以的~