大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。
🎀 当前专栏:基于Python的毕业设计
精彩专栏推荐👇🏻👇🏻👇🏻
源码下载地址:
https://download.csdn.net/download/m0_46388260/87921274
目录
一、项目简介
本次就是利用了Python语言技术来通过B/S结构的方式搭建一款能够帮助用户记录多应用系统登录名和密码的系统,通过统一的管理和统一的授权模式,减少数据信息冗余度,提高对密码管理的安全性,为用户提供认证和登录的便捷度。
二、系统设计
2.1软件功能模块设计
本次的系统功能设计将通过以首页设计、服务管理设计、日志管理设计、用户的信息管理等内容来完成对整个系统的功能模块的设计。服务管理来完成对统一身份认证的系统整体管理,包括的对托管的注册服务功能管理、对于系统网址的维护管理等内容。在身份认证的过程中,通过身份认证组件和同意的身份认证过程,完成账号的关联,通过登录统一的身份认证服务器后,来实现多个不同的应用系统的登录。单点登录在识别用户的身份之后,用户能够在与该系统相互信任的系统中进行直接的使用。具体的功能模块如下图所示:
2.2数据库设计
在数据库的设计上,本次的数据库概念设计如下图的E-R模型所示:
三、系统项目部分截图
3.1统一认证系统登录模块的实现
本次设计的统一身份认证系统需要通过登录来实现系统的内容操作使用,在登录模块的设计上其界面如下图:
3.2web服务统一身份认证首页
当用户完成登录之后,在网站的首页中能够看到当前网站所服务的用户数量、形成的日志数量、注册用户的数量等信息,在左侧为本网站的菜单栏,如下图所示:
3.3服务管理界面
在服务管理界面中,能够看到用户统一登录的服务名称、端口、地址以及创建时间等信息,用户可以通过点击启用服务来实现单一登录的统一身份认证,并点击访问服务可以进行网站的直接访问。如下图所示:
3.4 日志管理界面
在日志的管理界面中,能够看到用户的访问记录,包括操作人、操作的类型、操作的信息内容等。具体如下图所示:
四、论文目录
摘 要 3
Abstract 4
第1章 绪论 5
1.1开发背景 5
1.2研究现状 5
1.3研究内容 6
1.4 身份认证概述 7
1.5身份认证技术 7
1.5Python语言 8
1.6django框架 8
1.7MySQL数据库 8
第2章 系统分析 9
2.1可行性分析 9
2.1.1技术可行性 9
2.1.2操作可行性 9
2.1.3经济可行性 9
2.2设计的基本思想 9
2.3基础功能实现 10
2.3.1用户管理 10
2.3.2单点登录 10
2.4系统非功能性需求分析 10
2.4.1安全保密需求 10
2.4.2系统的性能需求 11
第3章 系统设计 12
3.1功能模块的设计 12
3.2数据库的设计 12
第4章 系统实现 14
4.1基本任务 14
4.2系统主要功能得实现 14
4.2.1统一认证系统登录模块的实现 14
4.2.2 web服务统一身份认证首页 14
4.2.3服务管理界面 15
4.2.4日志管理界面 16
第5章 系统测试 17
5.1测试目的 17
5.2测试方法 17
5.3 测试的过程 17
5.4 测试结果 18
结论 19
致谢 20
参考文献 21
五、部分核心代码
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
SECRET_KEY = 'django-insecure-sxnki$4lf_l-fmc03*$x5&fy!34d^ues)mg^6-94#stdvy9u7$'
DEBUG = True
# Application definition
INSTALLED_APPS = [
'mama_cas',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app',
'user'
]
AUTH_USER_MODEL = 'user.User'
MAMA_CAS_SERVICES = [
{
# 必填项,此项为**Client** IP:Port,相当于白名单
'SERVICE': 'http://127.0.0.1:8000',
# 回调模式,具体参考官方文档
'CALLBACKS': [
'mama_cas.callbacks.user_model_attributes',
],
},
{
# 必填项,此项为**Client** IP:Port,相当于白名单
'SERVICE': 'http://127.0.0.1:8001',
# 回调模式,具体参考官方文档
'CALLBACKS': [
'mama_cas.callbacks.user_model_attributes',
],
},
{
# 必填项,此项为**Client** IP:Port,相当于白名单
'SERVICE': 'http://127.0.0.1:8002',
# 回调模式,具体参考官方文档
'CALLBACKS': [
'mama_cas.callbacks.user_model_attributes',
],
},
{
# 必填项,此项为**Client** IP:Port,相当于白名单
'SERVICE': 'http://127.0.0.1:8003',
# 回调模式,具体参考官方文档
'CALLBACKS': [
'mama_cas.callbacks.user_model_attributes',
],
},
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'unified_authentication.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'unified_authentication.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'unified_authentication',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
'OPTIONS': {
"init_command": "SET foreign_key_checks = 0;",
}
}
}
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = '/static/'
STATICFILES_DIRS=(
os.path.join(BASE_DIR, 'static'),
)
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
获取源码或论文
如需对应的论文或源码,也可以下方微信联系我