如何实现验证登录

article/2025/10/10 3:29:27

开发工具与关键技术:VS .MVC基础
作者:卢雅婷
撰写时间:2019/05/6
(代码来源于老师)
实现验证登录这个操作是一些软件使用前的操作,第一步是注册,再就是登陆软件,(比喻微信,QQ等通信、娱乐类型的软件),用户要登录就必然需要通过验证登录了。
以前一些的登录软件都只需要密码和账号即可,随着技术的进步,为了更好地保护用户的信息,避免一些不法分子利用密码和账号就可登录,我们现在很多软件的登录都需要从其绑定手机中获取验证密码,所以我们接下来学习的就是带有验证码的验证登录。

  1. 在我们写方法前要先引用生成验证码字符串和验证码图片的静态类,你可以自己写也可从网上下载一个,如下图(下图是从网上下载的),再引用IO类
    在这里插入图片描述

  2. 再回到控制器创建一个创建验证码的方法(CreateValidCodeImage)
    如下图所示我们先要生成长度为5的随机的验证码字符串strRandom,
    ValidCodeUtils便是上图引用的静态类GetRandomCode便是其方法。接着根据生成的验证码字符串生成 验证码图片,因为保存图片需要用到二维数组来保存,所以我们先声明一个数组byte来接收验证码图片,接着调用方法CreateImage生成验证码图片,再将验证码字符串存入session中 key值,最后把图片返回到视图(文件内容,文件格式)。
    在这里插入图片描述

  3. 接着回到页面写一个函数,首先创建一个点击事件(获取input标签中验证码图片的img标签作点击事件),接着用prop这个方法(其第一个参数为scr,第二个为方法的路径,为了让我们每一次登录时图片都要更新,我会在路径的后面加上获取当时时间的方法,调用时间),改变事件实现的效果是点击一次图片,图片便会更换一张,就是再执行一遍CreateValidCodeImage在个方法。
    在这里插入图片描述

  4. 因为验证登录涉及用户账号、密码、用户类型等方面的验证,所以我们要再回到控制器中写其方法。先定义一个状态的变量,再从页面中获取用户名、密码、验证码,登录身份。再判断获取的数据是否为空,若为空则用strMsg提示:请把页面数据填写完整!
    在这里插入图片描述

  5. 若不为空则第一步:验证验证码是否争取成功,首先用try catch语句捕捉错误,再获取session中的验证码,用if else语句判断填入的验证和session中的验证码是否一致(忽略大小写) ,若不一致,则else输出:验证码不匹配,若一致则接着第二步判断账号是否存在(拿页面账号作为条件查询数据库表)。

  6. 第三步:对页面传来的密码进行AES265后进行加密,(加密的时候需要用到一个静态类AESEncryptHelper,是我们封装的一个类,也可网上下载密码加密类即可) 再用if else语句判断输入的密码与数据库密码是否一致,若不一致则输出:当前输入的密码错误!若一致则进行第四步:判断账号和选择的权限跟注册账号的账号权限是否对应(用户表 连 用户角色明细表 连 用户类型表查询该信息),若选择的权限跟注册账号的账号权限不对应则输出账号和登录人的角色不匹配。

  7. 若选择的权限跟注册账号的账号权限是对应该则执行第五步:设置session机制开始处理登录信息,先获取用户类型名称、用户类型ID,接着设置session如下图所示,获取页面上的信息传入session,再设置cookie,如果用选择了记住我,则strIsRember为true ,执行记住密码 保存cookie的操作,AddDays()的参数为7则保存时间为七天。其它的字段传入cookie相应的字段即可保存,如没有选择记住我,则删除cookie操作,就是让AddDays的参数为-1即可,系统会自己清楚过期的cookie,最后输出strMsg = “success”;登录成功。

在这里插入图片描述
在这里插入图片描述
8. 再到Login视图方法下面声明三个字符串变量,(UserNuber、Password和UserTypeClass),让isRember的初始值为false,再读取浏览器请求传递的cookie,判断cookie是否存在,若cookie不为空则判断cookie中的各个字段是否为空,不为空。使用ViewBag将数据返回。
9. 最后回到页面写点击登录方法,获取登录ID, 声明一个formDate来接收页面的数据,(serializeArray() 方法通过序列化表单值来创建对象数组(名称和值)。返回 JSON 数据结构数据。此方法返回的是 JSON 对象而非 JSON 字符串),再用post方法提交数据给控制器·,在回调函数中用if else语句判断返回的数据是否为success,为true则登录成功,跳转到主页面,else则输出相应提示。

  1. 最后为了方便用户登录写了一个回车登录方法,用if语句判断点击的是否为回车键,是则JS触发btnSubmit的单击事件(btnSubmit就是登陆按钮的ID)。keyCode键就是回车键,然后在form标签的中写一个onkeydown事件
    鄙人学之尚浅如有不对之处,请给予矫正。
    在这里插入图片描述

http://chatgpt.dhexx.cn/article/V1sKYKQF.shtml

相关文章

实现登录验证

最近练习搭建了一个后台管理系统,首先第一步做了关于验证登录的功能.以下项目使用了Nacos作为服务发现和注册中心,将Auth和gateway,system等相关多个微服务注册进Nacos.每次刷新登录页面,就会获取新的验证码(,输入正确的验证码即可成功跳转至首页. 获取验证码url:http://localh…

【图解】用户登录验证流程,这下彻底搞懂了!

开发者(KaiFaX) 面向全栈工程师的开发者 专注于前端、Java/Python/Go/PHP的技术社区 本文通过图示及代码的方式介绍用户登录流程及技术实现,内容包括用户登录,用户验证,如何获取操作用户的信息以及一些黑名单及匿名接口…

前端应该掌握的登录认证知识

1 背景 前一段时间,参与了老项目的迁移工作,配合后端接口迁移时,由于两个项目采取了不一样的登陆方案,所以遇到了跨域登录态无法共享的问题。经过各方协调,最终老项目将迁移页面部署在新项目的指定网关下,…

中间件登录验证(白名单,黑名单)

中间件版的登录验证需要依靠session,所以数据库中要有django_session表。 urls.py from django.conf.urls import url from app01 import viewsurlpatterns [url(r^index/$, views.index),url(r^login/$, views.login, namelogin), ]urls.py View Code views.py fr…

登录验证的那些事儿

前言 在以前的项目我们一般使用session或者cookie来存储已登录的用户信息,这样到达一个免除重复登录的问题,那么如何登录,又如何验证,就是一直在讨论的问题。今天我们对这些技术点进行一个梳理。 字 多 你 就 挑 有 颜 色 的 看…

计算机网络-(自顶向下方法)

计算机网络基础知识概述 计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标准上进行。 …

计算机网络:自顶向下方法 笔记

计算机网络:自顶向下方法 笔记 综述因特网部件图例交换方式分组交换电路交换频分复用时分复用 对比 五层/七协议一个传输实例攻击DOS攻击 应用层应用程序结构客户-服务器结构P2P point2point结构 应用层协议总览http报文格式http状态码cookiesessionhttps FTPSMTPDN…

计算机网络 自顶向下 笔记

目录 第一章 计算机网络和因特网 全书答案评论留言即可 我私发,这里上传不了文本 第一章 计算机网络和因特网 什么是因特网? 因特网的具体构成:构成因特网的基本硬件和软件组件 分布式应用的互联网基础设施来描述 ---------------------…

《计算机网络-自顶向下》04. 网络层-数据平面

文章目录 网络层数据平面和控制平面两者的概述数据平面控制平面 控制平面:传统方法控制平面:SDN 方法网络服务模型 路由器工作原理通用路由器体系结构输入端口的功能基于目标的转发 交换结构内存交换方式总线交换方式纵横式交换方式 输出端口的功能何时何…

计算机网络自顶向下方法 习题参考答案 第一章

复习题: R1. 没有什么不同。PC、服务器、手机等。Web服务器是端系统。 R2. Protocol is commonly described as a set of international courtesy rules. These well-established and time-honored rules have made it easier for nations and people to live a…

计算机网络自顶向下方法(第六版) 课后题答案 | 第三章

复习题 R1. a. 将此协议称为简单传输协议(STP)。在发送方端,STP 从发送过程中接收不超过 1196 字节的数据块、目标主机地址和目标端口号。STP 向每个块添加一个 4 字节的报头,并将目标进程的端口号放在这个报头中。然后 STP 将目标主机地址和报文段提供…

计算机网络—自顶向下 计算机网络和因特网

目录 1. 什么是计算机网络 1.1 概念 1.2 因特网的具体构成 2. 计算机网络的结构 2.1 网络边缘(The Network Edge) 2.1.1 接入网 2.1.2 物理媒体 2. 2 网络核心(The network core) 2.2.1 电路交换 2.2.2 多路复用 2.2.3 报文交换 2.2.4 分组交换 2.2.5 网络之…

计算机网络自顶向下方法(一)——计算机网络和因特网

不要成为理想的巨人,行动的矮子 文章目录 写在前面什么是Internet?具体构成及描述什么是Internet: 从服务角度 网络边缘网络边缘:采用网络设施的面向连接服务网络边缘:采用基础设施的无连接服务 网络核心网络核心:电路交换电路交…

【计算机网络:自顶向下方法】(二)应用层

tm 【计算机网络:自顶向下方法】(二)应用层 文章目录 应用层如何创建一个新的网络应用? 2.1 应用层原理网络应用的体系结构对等模式(P2P:Peer To Peer)混合体:客户-服务器和对等体系结构 进程通信分布式进程通信需要解决的问题问题1:…

计算机网络自顶向下-第 8 版

Computer Networking A Top Down Approach 8th Edition Computer Networking A Top Down Approach 8th Edition 概述本书资源计算机网络自顶向下方法第八版英文pdf图片预览 更新特点精彩试读作者介绍 概述 概述 Computer Networking A Top Down Approach第8版也就是计算机网…

自顶向下计算机网络 传输层

自顶向下计算机网络学习 传输层 一、概述和传输层服务1.1 传输层提供的服务1.2传输层和网络层的关系1.3 传输层协议可靠的、保序的传输:TCP不可靠、不保序的传输:UDP 二、多路复用与解复用2.1 什么是复用与解复用2.2 面向连接(TCP)的多路复用与分解2.3 无…

自顶向下计算机网络学习 应用层

自顶向下计算机网络学习 应用层 一、应用层协议原理1. 网络应用的体系结构1.1 客户-服务器(C/S)体系结构1.2 对等体(P2P)体系结构1.3 混合体:客户 - 服务器和对等体系结构 2.应用进程间的通信2.1 分布式进程需要解决的问题2.1.1 进程标识和寻…

计算机网络自顶向下方法 【第一章 计算机网络及因特网】

目录 1.1 什么是因特网1.1.1 具体构成描述1.1.2 服务描述1.1.3 网络协议 1.2 网络边缘1.2.1 接入网 1.3 网络核心1.3.1分组交换1.3.2 电路交换1.3.3 报文交换 1.4 交换网中的时延,丢包和吞吐量1.5 协议层次及其服务模型 1.1 什么是因特网 我们可以用两种方式描述因…

计算机网络自顶向下方法笔记01

《计算机网络自顶向下方法》学习笔记。之前学习过计算机网络微课,已经对计网中的很多概念都有了印象和一定的了解了,这时候再读自顶向下感觉比较轻松了。这本书没有涉及太多物理层的内容,第一章为概述。从第二章应用层开始,自顶向…

《计算机网络--自顶向下方法》第一章--计算机网络和英特网

1.1什么是英特网 1.1.1具体构成描述 主机(host)或端系统(end system):所有与因特网相连的计算设备 路由器(router):从一条入通信链路接收到达的分组,并通过一条出通信链…