基于B/S三层体系结构的用户身份认证系统设计与开发

大三的一个实验设计,因为当时正在学前端和nodejs,用了跟老师不同的技术实现一个简单的验证页面

实验目的

基于B/S三层体系结构,实现用户身份验证。能够熟练应用哈希算法,实现一个基本的用户身份认证系统,具备完善的功能和良好的页面交互功能,基本掌握身份验证的整个流程。

  • 实验原理

什么是B/S架构:B/S架构,即浏览器和服务器架构模式,在这种架构下,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。

密码取hash值是指前端用户输入密码之后在前端对密码取哈希值,然后将哈希值代替原始密码存储到数据库中去

密码取hash值是指前端用户输入密码之后在前端对密码取哈希值,然后将哈希值去跟数据库存储的哈希值进行比较

运行环境

操作系统:windows操作系统

开发环境:JavaScript语言编译环境 + node.JS + AXIOS前端

数据库环境:MySQL + Navicat

开发工具:Visual Studio Code

A.创建数据库及对应的表

数据库名为exp3,表名为user,表中包含字段:userid、password,

id为自增主键,userid为用户名,password为密码

navicat用于连接数据库,实现方便、快捷的查看数据库

B.基于Node.js构建后端APP.ALL接口

  1. login接口:接收post请求,接收userid和password参数,返回登陆成功 or 登陆失败
  2. enroll接口:接收post请求,接收userid和password参数,返回注册成功 or 该用户已存在,无法注册

然后在Node.js中操作数据库将获取的参数与数据库进行对比或将数据存入数据库

C.基于前端技术(HTML\CSS\JavaScript/twitter-bootstrap/axios完成前端页面)

使用sha512.js中实现前端对密码取哈希值,具体使用方法如下:

首先引入sha512.js:<script src="./sha512.js" type="text/javascript"></script>,然后使用hex_sha512 (password)对password取哈希值。

前端引入/twitter-bootstrap  axios

D.前后端交互实现

最后实现的前后端交互效果实验结果所示

前端HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>实验</title>
    <link rel="stylesheet" href="inedx.css">
    <script crossorigin="anonymous"src="https://cdn.bootcdn.net/ajax/libs/axios/1.1.3/axios.js"></script>
    <link crossorigin="anonymous" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.2/css/bootstrap.min.css" rel="stylesheet">
</head>

<body>
    <div id="login_box">
        <h2>登 录</h2>
        <div id="form">
            <div id="input_box">
                <input id="userid" type="text" placeholder="请输入用户名">
            </div>
            <div id="input_box">
                <input id="passport"type="password" placeholder="请输入密码">
            </div>
        </div>
        <button id="sign_in">登录</button>
        <br>
        <button id="enroll">注册</button>
    </div>

    <script src="./sha512.js" type="text/javas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kun.A.A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值