基于Python+Django的项目实战-web服务统一身份认证协议设计(附源码+论文)

大家好!我是职场程序猿,感谢您阅读本文,欢迎一键三连哦。

🎀 当前专栏:基于Python的毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

💞微信小程序毕业设计
🎀 安卓app毕业设计
🌎Java毕业设计

源码下载地址:

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'

获取源码或论文

如需对应的论文或源码,也可以下方微信联系我

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值