當前位置:首頁 » 操作系統 » 登錄驗證源碼

登錄驗證源碼

發布時間: 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()函數將被調用。這通常用於編寫可復用的代碼,既可以作為庫導入到其他項目中,也可以作為獨立的腳本運行。

熱點內容
我的世界伺服器rcon埠地址 發布:2024-12-19 17:43:38 瀏覽:700
快速開發java 發布:2024-12-19 17:38:51 瀏覽:636
抖音哪裡設置密碼登錄 發布:2024-12-19 17:27:46 瀏覽:880
台灣機房伺服器租用雲空間物理機 發布:2024-12-19 17:17:18 瀏覽:127
演算法敘述正確的是 發布:2024-12-19 17:15:50 瀏覽:342
電腦反編譯apk的工具哪一個好 發布:2024-12-19 17:15:05 瀏覽:621
蘋果x如何把密碼改為四位數 發布:2024-12-19 17:04:44 瀏覽:304
伺服器配置php 發布:2024-12-19 16:59:14 瀏覽:827
電腦設置密碼如何取消 發布:2024-12-19 16:57:03 瀏覽:137
72乘99的簡便演算法 發布:2024-12-19 16:55:37 瀏覽:3