holyya.com
2026-01-17 23:50:52 Saturday
登录
文章检索 我的文章 写文章
Node.js 登录系统
2023-07-11 12:45:01 深夜i     --     --
Node js 登录系统 身份验证 用户认证 安全性

Node.js是一种非常流行的服务器端JavaScript应用程序开发平台。随着越来越多的人开始使用Node.js,这种技术已经成为许多应用程序的中心。其中之一就是登录系统。本文将介绍Node.js登录系统的工作原理及如何创建一个简单的登录系统。

Node.js登录系统的工作原理

Node.js的登录系统由两个主要组成部分构成。一个是服务器端,它处理用户的登录信息并与数据库进行交互。另一个是客户端,它向用户提供登录页面和指示与服务器交互的脚本。

首先,用户通过浏览器发送登录表单。这些表单会通过POST方法发送到Node.js服务器。服务器会验证表格的输入,并判断用户是否授权登录。如果授权,则服务器会将用户重定向到已经被授权的页面。如果未经授权,服务器将返回错误状态并提示用户重新输入用户名和密码。

Node.js还提供了cookie和session的管理。当用户成功登录后,服务器将在客户端上创建一个session。sessionId是一个随机字符串,存储在单独的cookie文件中。这些cookie会在用户关闭浏览器后被删除。当用户再次访问登录页时,如果他们已经授权过,服务器将使用session键来验证用户。否则,服务器将要求用户重新登录。

如何创建Node.js登录系统

在Node.js中,首先需要安装Express,这是一个Node.js的web应用程序框架。通过使用Express框架,我们可以轻松创建登录系统。以下是实现此操作的步骤:

创建一个Node.js项目并安装Express

通过终端窗口创建一个新的项目文件夹并初始化它,初始化时会安装package.json文件。然后将Express作为依赖项安装到项目中。

mkdir login_system

cd login_system

npm init -y

npm install express --save

创建服务器文件

在项目目录下创建一个文件名为server.js的文件。在Server.js中包含以下代码:

const express = require('express');

const bodyParser = require('body-parser');

const session = require('express-session');

const app = express();

app.use(bodyParser.urlencoded({ extended: false }));

app.use(session(

 saveUninitialized: true

));

app.get('/', (req, res) => {

 res.send('Welcome to Login System');

});

app.listen(3000, () => {

 console.log('Server started at :3000');

});

该文件引入了Express框架中的三个包:body-parser、session。这个文件包含一个GET路由,当用户访问根URL时显示一条欢迎消息。此外,登录系统的支持由第5,6,8行提供。在第4行中使用body-parser包解析提交的表单数据,注意使用express-session在处理用户请求时创建会话。

创建HTML文件

在项目目录下使用以下代码创建一个index.html文件作为登录页面:

 

  登录系统

登录

  

  

  

  

  

创建第二个路由

在server.js文件中,我们需要创建第二个路由,它将处理登录表单和授权过程。

app.post('/login', (req, res) => {

 const username = req.body;

 if (username === 'admin' && password === '1234') {

  req.session.user =

   authentication: true

  ;

  res.redirect('/home');

 } else {

  res.status(401).send('Invalid Credentials');

 }

});

这个路由检查提交的用户名和密码是否与数据库中的相匹配。如果匹配,该路由将使用传递的信息和authentication,key 创建一个新的session,并将用户重定向到/home页面。否则,返回错误状态并提示用户重新输入用户名和密码。

创建授权页面

在这里,我们创建一个/home页面,该页面仅在由用户的登录session验证成功后显示。在server.js文件中添加以下代码:

app.get('/home', (req, res) => {

 if (req.session.user && req.session.user.authentication === true) {

  res.send(`Welcome ${req.session.user.username}`);

 } else {

  res.status(401).send('Authentication Required');

 }

});

此代码使用req.session检查用户是否已经登录。如果已经登录并通过验证,则授予访问权限,否则返回错误状态并提示用户进行身份验证。

到此这个简易的Node.js登录系统就搭建完成了。您可以尝试在浏览器中运行它,并使用不同的用户名和密码尝试登录。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复