当前位置:首页 » 操作系统 » 登录验证源码

登录验证源码

发布时间: 2024-12-19 15:21:27

1. 如何在jsp中实现用户登录验证

1、新建TokenAction。

2. vue实现用户登录验证 + 权限验证 + 动态路由(左侧菜单栏)

本文介绍如何利用 Vue 技术栈(Vue2.6、vue-router、vuex、element-ui)实现用户登录验证、权限验证以及动态路由功能(左侧菜单栏)。首先,确保已安装 nodejs(版本 14.15.1)并使用 npm 包管理器安装 Vue(版本 4.5.12)。接下来,利用 Element-UI、nprogress 和 normalize.css 完成项目搭建,并通过 vue.config.js 文件进行项目配置。实现步骤如下:

1. 搭建项目环境:安装 nodejs 和 vue,完成项目创建和初始化。

2. 引入依赖:安装 Element-UI、nprogress、normalize.css,编写 vue.config.js 文件以自定义项目配置。

3. 功能实现概述:在实现过程中,重点包括用户登录验证、权限验证和动态路由构建,以及左侧菜单栏的生成。实现思路分为以下几个步骤:

1. 模拟用户数据,实现登录验证和权限验证,后端返回用户姓名、头像、简述以及 token(实际场景中,token 应从后端获取),以及根据用户角色动态生成路由。

2. 通过模拟数据实现用户登录,获取权限信息并存储于 localStorage,然后跳转至主页。

3. 动态生成菜单栏:在 router 文件夹中创建 router.config.js 文件,实现路由守卫,确保页面加载时动态渲染出菜单栏。

4. 用户退出:在 headerTemp/index.vue 中实现退出功能,清除 localStorage 中的用户信息,并跳转至登录页面。

5. 动态路由管理:考虑到路由持久化问题,选择使用 localStorage 来存储用户角色信息,确保浏览器刷新时菜单的正确显示。关于 Vuex 的使用,由于其数据持久化特性在特定场景下可能不合适,本文选择使用 localStorage 进行路由管理以确保数据的稳定性和一致性。

项目源码和详细代码实现过程,可参考以下链接:

源码地址(gitee): <a href="gitee.com/lemonote/vue2...

项目地址: <a href="dynamic.lemonotes.cn/#...

本文详细解释了如何结合 Vue 技术栈实现用户登录验证、权限验证和动态路由功能,确保了左侧菜单栏的生成和用户操作的流畅性。在实际应用中,还需根据具体需求调整和优化代码逻辑,以满足不同场景下的功能需求。

如果您对文章内容有任何疑问或发现不正确的部分,欢迎在下方评论区指正。感谢您的阅读和支持!

3. 网站中的验证码是怎么做的,谁有源程序

源码,保存为CodePhoto.asp,
在要插入验证码图片的地方插入<img border="0" src="codephoto.asp" width="50" height="20">
生成的随机验证码存在
Session("ValidCode")中,你只要把用户输入的验证码和Session("ValidCode")比较就行了。

<%
Call Com_CreatValidCode("ValidCode")
response.write vCodes
Sub Com_CreatValidCode(pSN)
' 禁止缓存
Response.Expires = -9999
Response.AddHeader "Pragma","no-cache"
Response.AddHeader "cache-ctrol","no-cache"
Response.ContentType = "Image/BMP"

Randomize

Dim i, ii, iii

Const cOdds = 2 ' 杂点出现的机率
Const cAmount = 36 ' 文字数量
Const cCode = ""

' 颜色的数据(字符,背景)
Dim vColorData(1)
vColorData(0) = ChrB(255) & ChrB(100) & ChrB(0) ' 蓝0,绿0,红0(黑色)
vColorData(1) = ChrB(255) & ChrB(255) & ChrB(255) ' 蓝250,绿236,红211(浅蓝色)

' 随机产生字符
Dim vCode(4), vCodes
For i = 0 To 3
vCode(i) = Int(Rnd * cAmount)
vCodes = vCodes & Mid(cCode, vCode(i) + 1, 1)
Next

Session("ValidCode") = vCodes '记录入Session
' 字符的数据
Dim vNumberData(35)
vNumberData(0) = ""
vNumberData(1) = ""
vNumberData(2) = ""
vNumberData(3) = ""
vNumberData(4) = ""
vNumberData(5) = ""
vNumberData(6) = ""
vNumberData(7) = ""
vNumberData(8) = ""
vNumberData(9) = ""
vNumberData(10) = ""
vNumberData(11) = ""
vNumberData(12) = ""
vNumberData(13) = ""
vNumberData(14) = ""
vNumberData(15) = ""
vNumberData(16) = ""
vNumberData(17) = ""
vNumberData(18) = "1100000111"
vNumberData(19) = "1110000011"
vNumberData(20) = ""
vNumberData(21) = "1000111111"
vNumberData(22) = ""
vNumberData(23) = ""
vNumberData(24) = ""
vNumberData(25) = ""
vNumberData(26) = ""
vNumberData(27) = ""
vNumberData(28) = ""
vNumberData(29) = ""
vNumberData(30) = ""
vNumberData(31) = ""
vNumberData(32) = ""
vNumberData(33) = ""
vNumberData(34) = ""
vNumberData(35) = ""

' 输出图像文件头
Response.BinaryWrite ChrB(66) & ChrB(77) & ChrB(230) & ChrB(4) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
ChrB(0) & ChrB(0) & ChrB(54) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) &_
ChrB(0) & ChrB(0) & ChrB(40) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(10) & ChrB(0) &_
ChrB(0) & ChrB(0) & ChrB(1) & ChrB(0)

' 输出图像信息头
Response.BinaryWrite ChrB(24) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(176) & ChrB(4) &_
ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) & ChrB(0) & ChrB(0) & ChrB(18) & ChrB(11) &_
ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) & ChrB(0) &_
ChrB(0) & ChrB(0)

For i = 9 To 0 Step -1 ' 历经所有行
For ii = 0 To 3 ' 历经所有字
For iii = 1 To 10 ' 历经所有像素
' 逐行、逐字、逐像素地输出图像数据
If Rnd * 100 + 1 < cOdds Then ' 随机生成杂点
Response.BinaryWrite vColorData(0)
Else
Response.BinaryWrite vColorData(Mid(vNumberData(vCode(ii)), i * 10 + iii, 1))
End If
Next
Next
Next
End Sub
%>

4. jsp登陆界面源代码

1、login.jsp文件

<%@ page language="java" contentType="text/html; charset=GB18030"

pageEncoding="GB18030"%>

<%@ page import="java.util.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>登录页面</title>

</head>

<body>

<form name="loginForm" method="post" action="judgeUser.jsp">

<table>

<tr>

<td>用户名:<input type="text" name="userName" id="userName"></td>

</tr>

<tr>

<td>密码:<input type="password" name="password" id="password"></td>

</tr>

<tr>

<td><input type="submit" value="登录" style="background-color:pink"> <input

type="reset" value="重置" style="background-color:red"></td>

</tr>

</table>

</form>

</body>

</html>

2、judge.jsp文件

<%@ page language="java" contentType="text/html; charset=GB18030"

pageEncoding="GB18030"%>

<%@ page import="java.util.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>身份验证</title>

</head>

<body>

<%

request.setCharacterEncoding("GB18030");

String name = request.getParameter("userName");

String password = request.getParameter("password");

if(name.equals("abc")&& password.equals("123")) {

3、afterLogin.jsp文件

%>

<jsp:forward page="afterLogin.jsp">

<jsp:param name="userName" value="<%=name%>"/>

</jsp:forward>

<%

}

else {

%>

<jsp:forward page="login.jsp"/>

<%

}

%>

</body>

</html>

<%@ page language="java" contentType="text/html; charset=GB18030"

pageEncoding="GB18030"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>登录成功</title>

</head>

<body>

<%

request.setCharacterEncoding("GB18030");

String name = request.getParameter("userName");

out.println("欢迎你:" + name);

%>

</body>

</html>

(4)登录验证源码扩展阅读:

java web登录界面源代码:

1、Data_uil.java文件

import java.sql.*;

public class Data_uil

{

public Connection getConnection()

{

try{

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

}catch(ClassNotFoundException e)

{

e.printStackTrace();

}

String user="***";

String password="***";

String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=***";

Connection con=null;

try{

con=DriverManager.getConnection(url,user,password);

}catch(SQLException e)

{

e.printStackTrace();

}

return con;

}

public String selectPassword(String username)

{

Connection connection=getConnection();

String sql="select *from login where username=?";

PreparedStatement preparedStatement=null;

ResultSet result=null;

String password=null;

try{

preparedStatement=connection.prepareStatement(sql);

preparedStatement.setString(1,username);

result=preparedStatement.executeQuery();//可执行的 查询

if(result.next())

password=result.getString("password");

}catch(SQLException e){

e.printStackTrace();

}finally

{

close(preparedStatement);

close(result);

close(connection);

}

System.out.println("找到的数据库密码为:"+password);

return password;

}

public void close (Connection con)

{

try{

if(con!=null)

{

con.close();

}

}catch(SQLException e)

{

e.printStackTrace();

}

}

public void close (PreparedStatement preparedStatement)

{

try{

if(preparedStatement!=null)

{

preparedStatement.close();

}

}catch(SQLException e)

{

e.printStackTrace();

}

}

public void close(ResultSet resultSet)

{

try{

if(resultSet!=null)

{

resultSet.close();

}

}catch(SQLException e)

{

e.printStackTrace();

}

}

}

2、login_check.jsp:文件

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>验证用户密码</title>

</head>

<body>

<jsp:useBean id="util" class="util.Data_uil" scope="page" />

<%

String username=(String)request.getParameter("username");

String password=(String)request.getParameter("password");

if(username==null||"".equals(username))

{

out.print("<script language='javaScript'> alert('用户名不能为空');</script>");

response.setHeader("refresh", "0;url=user_login.jsp");

}

else

{

System.out.println("输入的用户名:"+username);

String passwordInDataBase=util.selectPassword(username);

System.out.println("密码:"+passwordInDataBase);

if(passwordInDataBase==null||"".equals(passwordInDataBase))

{

out.print("<script language='javaScript'> alert('用户名不存在');</script>");

response.setHeader("refresh", "0;url=user_login.jsp");

}

else if(passwordInDataBase.equals(password))

{

out.print("<script language='javaScript'> alert('登录成功');</script>");

response.setHeader("refresh", "0;url=loginSucces.jsp");

}

else

{

out.print("<script language='javaScript'> alert('密码错误');</script>");

response.setHeader("refresh", "0;url=user_login.jsp");

}

}

%>

</body>

</html>

3、loginSucces.jsp文件

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<hr size="10" width="26%" align="left" color="green">

<font size="6" color="red" >登录成功 </font>

<hr size="10" width="26%" align="left" color="green">

</body>

</html>

4、user_login.jsp文件

<%@ page language="java" contentType="text/html; charset=utf-8"

pageEncoding="utf-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>登录界面</title>

</head>

<body background="C:Userswin8workspaceLoginimage\_10.jpg" >

<center>

<br><br><br><br><br><br>

<h1 style="color:yellow">Login</h1>

<br>

<form name="loginForm" action="login_check.jsp" method="post">

<table Border="0" >

<tr >

<td>账号</td>

<td><input type="text" name="username"></td>

</tr>

<tr>

<td>密码</td>

<td><input type="password" name="password">

</td>

</tr>

</table>

<br>

<input type="submit" value="登录" style="color:#BC8F8F">

</form>

</center>

</body>

</html>

5. 使用Python实现简易的用户登录验证功能

本文将介绍如何利用Python语言进行程序设计,实现一个简单的用户登录验证功能。

该功能支持用户输入由字母和数字混合组成的用户名和密码,并通过循环提示用户输入,直到凭证正确为止。所有凭证信息将被存储在一个字典中,以便进行匹配验证。

此外,加入了验证码机制,要求用户输入一个由0至9组成的四位数。无论登录尝试成功与否,程序都会立即给出反馈,确保用户能够及时了解自己的登录状态。

用户登录验证的逻辑流程图源码运行结果代码分析一、字典存放用户信息

字典是一种可变的数据结构,用于存储键值对,用{ }标识。它是一个无序集合,类似于JSON对象的存储格式。

二、验证码生成函数

该函数旨在生成一个四位数的验证码。这个验证码由1000到9999之间的随机四位数组成。

具体来说,generate_verification_code函数每次调用时都会返回一个不同的四位随机验证码字符串。这个验证码可以用作登录验证的一部分,以确保尝试登录的用户是人类而非自动化脚本

三、格式化字符串字面量

在Python中,f-string是一种字符串字面量,允许在字符串中嵌入表达式,并使用大括号{}引用变量或表达式。这种方式在Python 3.6及以上版本中可用,是一种简单便捷的字符串格式化方法。

print(f"验证码:{verification_code}")的作用是将verification_code变量的值嵌入到字符串中,并打印出来。这里的f表示这是一个格式化字符串,而{verification_code}告诉Python在这个位置插入verification_code变量的值。

当这行代码执行时,它会生成一个包含随机生成的验证码的字符串,并输出到控制台。

四、"main"函数与程序入口

Python程序没有统一的入口,但可以使用if __name__ == "__main__":结构确定模块是被直接运行还是被导入到另一个模块中。这里的__name__是Python的一个内置变量,代表当前模块的名称。

if __name__ == "__main__":块中的代码只有在模块被直接运行时才会执行。这通常用于定义主程序入口点,即当模块作为脚本运行时应该执行的操作。

这段代码意味着如果这个模块是作为主程序运行的,那么user_login()函数将被调用。这通常用于编写可复用的代码,既可以作为库导入到其他项目中,也可以作为独立的脚本运行。

热点内容
财务管理系统c语言 发布:2024-12-19 20:54:19 浏览:186
oppor9手机照片上传云 发布:2024-12-19 20:47:58 浏览:701
单片机的存储器 发布:2024-12-19 20:26:52 浏览:66
php登陆验证 发布:2024-12-19 20:12:54 浏览:722
androidhint 发布:2024-12-19 20:01:33 浏览:973
编译内核教程 发布:2024-12-19 20:00:50 浏览:832
扩展存储慢 发布:2024-12-19 20:00:41 浏览:832
无法打开登录数据库 发布:2024-12-19 20:00:39 浏览:206
borland编译器 发布:2024-12-19 19:55:48 浏览:578
单片编程符号 发布:2024-12-19 19:31:15 浏览:670