Python+Django的毕业设计-web服务统一身份认证协议设计系统项目开发实战(源码+论文)

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

🎀当前专栏: Python毕业设计

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

💞Java毕业设计
🌎微信小程序毕业设计

开发环境

  • 开发语言:Python
  • 数据库:mysql 5.7
  • 数据库工具:Navicat12
  • 开发软件:pycharm
  • 浏览器:谷歌浏览器

源码下载地址:

https://download.csdn.net/download/2301_76953549/87951141

论文目录

【如需全文请按文末获取联系】

在这里插入图片描述
在这里插入图片描述

一、项目简介

本次就是利用了Python语言技术来通过B/S结构的方式搭建一款能够帮助用户记录多应用系统登录名和密码的系统,通过统一的管理和统一的授权模式,减少数据信息冗余度,提高对密码管理的安全性,为用户提供认证和登录的便捷度。

二、系统设计

2.1软件功能模块设计

本次的系统功能设计将通过以首页设计、服务管理设计、日志管理设计、用户的信息管理等内容来完成对整个系统的功能模块的设计。服务管理来完成对统一身份认证的系统整体管理,包括的对托管的注册服务功能管理、对于系统网址的维护管理等内容。在身份认证的过程中,通过身份认证组件和同意的身份认证过程,完成账号的关联,通过登录统一的身份认证服务器后,来实现多个不同的应用系统的登录。单点登录在识别用户的身份之后,用户能够在与该系统相互信任的系统中进行直接的使用。具体的功能模块如下图所示:
在这里插入图片描述

2.2数据库设计

在数据库的设计上,本次的数据库概念设计如下图的E-R模型所示:
在这里插入图片描述

三、系统项目部分截图

3.1统一认证系统登录模块的实现

本次设计的统一身份认证系统需要通过登录来实现系统的内容操作使用,在登录模块的设计上其界面如下图:
在这里插入图片描述

3.2 web服务统一身份认证首页

当用户完成登录之后,在网站的首页中能够看到当前网站所服务的用户数量、形成的日志数量、注册用户的数量等信息,在左侧为本网站的菜单栏,如下图所示:
在这里插入图片描述

3.3服务管理界面

在服务管理界面中,能够看到用户统一登录的服务名称、端口、地址以及创建时间等信息,用户可以通过点击启用服务来实现单一登录的统一身份认证,并点击访问服务可以进行网站的直接访问。如下图所示:
在这里插入图片描述

3.4日志管理界面

在日志的管理界面中,能够看到用户的访问记录,包括操作人、操作的类型、操作的信息内容等。具体如下图所示:
在这里插入图片描述

四、部分核心代码

import time

from django.contrib.auth import logout
from django.shortcuts import render

from .models import User
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator
from utils.common import create_log,login_request
#from utils.mypage import Pagination



def register(request):
    """
    注册账号
    :return:
    """
    try:
        name = request.POST.get('username')
        passwd = request.POST.get('password')
        phone = request.POST.get('phone')
        email = request.POST.get('email')
        user = User.objects.filter(username=name)
        if user:
            return JsonResponse({'message': '用户已存在,请直接登录'}, status=403)
        User.objects.create_user(
            username=name,
            password=passwd,
            mobile=phone,
            email=email,
            is_active=1,
            is_staff=1,
        )
        create_log(request,'注册','注册了用户',name,1)
        response_data = {'message': '注册成功'}
        return JsonResponse(response_data)
    except Exception as e:
        print(e)
        create_log(request, '注册', '注册了用户', request.POST.get('username'), 0)
        return JsonResponse({'message': '注册失败'}, status=401)
@login_request
def password(request):
    username = request.user.username
    return render(request,'modify_password.html',locals())
	
	
def get_user(request):
    """
    获取用户列表信息 | 模糊查询
    :param request:
    :return:
    """
    keyword = request.GET.get('name')
    page = request.GET.get("page", '')
    limit = request.GET.get("limit", '')
    role_id = request.GET.get('position','')
    response_data = {}
    response_data['code'] = 0
    response_data['msg'] = ''
    data = []
    if keyword is None:
        results_obj = User.objects.all()
    else:
        results_obj = User.objects.filter(name__contains=keyword).all()
    paginator = Paginator(results_obj, limit)
    results = paginator.page(page)
    if results:
        for user in results:
            record = {
                "id": user.id,
                "name": user.username,
                "password": user.password,
                "phone": user.mobile,
                "email": user.email,
                'create_time': user.date_joined.strftime('%Y-%m-%d %H:%m:%S'),
                "is_superuser": user.is_superuser,
            }
            data.append(record)
        response_data['count'] =len(results_obj)
        response_data['data'] = data

    return JsonResponse(response_data)

@login_request
def user(request):
    """
    跳转用户页面
    """
    username = request.user.username
    return render(request, 'user.html', locals())



def login_check(request):
    """
    登录校验
    """
    response_data = {}
    name = request.GET.get('username')
    password = request.GET.get('password')
    user = User.objects.filter(name=name, password=password).first()
    info = {}
    if user:
        # 将用户名存入session中
        request.session["username"] = user.name
        request.session["role"] = user.role
        request.session["user_id"] = user.id
        response_data['message'] = '登录成功'
        return JsonResponse(response_data, status=201)
    else:
        return JsonResponse({'message': '用户名或者密码不正确'}, status=401)


def edit_user(request):
    """
    修改用户
    """
    response_data = {}
    user_id = request.POST.get('id')
    username = request.POST.get('username')
    phone = request.POST.get('phone')
    email = request.POST.get('email')
    User.objects.filter(id=user_id).update(
        email=email,
        username=username,
        mobile=phone)
    response_data['msg'] = 'success'
    return JsonResponse(response_data, status=201)


def del_user(request):
    """
    删除用户
    """
    user_id = request.POST.get('id')
    result = User.objects.filter(id=user_id).first()
    try:
        if not result:
            response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
            return JsonResponse(response_data, status=403)
        result.delete()
        response_data = {'message': '删除成功!'}
        return JsonResponse(response_data, status=201)
    except Exception as e:
        response_data = {'message': '删除失败!'}
        return JsonResponse(response_data, status=403)


def change_password(request):
    """
    修改密码
    """
    user =request.user

    password =request.POST.get('changePassword')
    user.set_password(password)
    user.save()

    logout(request)
    return JsonResponse({"msg": "success"})




获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微❤联系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值