holyya.com
2026-01-17 23:13:51 Saturday
登录
文章检索 我的文章 写文章
Node.js 登录验证
2023-07-11 17:19:55 深夜i     --     --
Node js 登录 验证 用户认证 安全性

Node.js 是目前非常流行的一种服务器端 JavaScript 运行环境。在 web 应用开发中,用户登录验证是一个必须的功能之一。本文将介绍如何使用 Node.js 实现用户登录验证。

1. 建立服务器

首先,需要建立一个服务器,可以使用 Express 框架。在项目目录下,执行以下命令:


npm install express

创建 app.js 文件,编写代码:

Script

const express = require('express')

const app = express()

app.listen(3000, () => {

 console.log('Server running on http://localhost:3000')

})

在命令行执行 `node app.js`,可以看到控制台输出“Server running on http://localhost:3000”,表示服务器已经成功运行。

2. 设置视图引擎

在项目目录下,通过以下命令安装模板引擎:


npm install --save ejs

在 app.js 中设置视图引擎为 ejs:

Script

app.set('views', __dirname)

app.set('view engine', 'ejs')

在项目根目录下创建 views 目录,然后创建 login.ejs 文件,编写登录页面的 HTML 代码和表单。

HTML

<!DOCTYPE html>

<html>

<head>

 <meta charset="utf-8">

 <title>Login</title>

</head>

<body>

 <h1>Login</h1>

 <form method="POST" action="/login">

  <div>

   <label for="username">Username:</label>

   <input type="text" id="username" name="username">

  </div>

  <div>

   <label for="password">Password:</label>

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

  </div>

  <div>

   <input type="submit" value="Login">

  </div>

 </form>

</body>

</html>

3. 处理 POST 请求

当用户填写表单并提交时,需要处理 POST 请求。在 app.js 中编写以下代码:

Script

const bodyParser = require('body-parser')

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

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

 const username = req.body

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

  res.send('Login successfully.')

 } else {

  res.send('Login failed.')

 }

})

使用 bodyParser 模块解析 POST 请求中的数据。如果用户名和密码都是“admin”,则登录成功,否则登录失败。

4. 完成登录验证

登录成功后,通常需要将用户标识存储到 session 中,以便在后续的请求中获取。可以使用 express-session 模块来实现:


npm install --save express-session

在 app.js 中编写以下代码:

Script

const session = require('express-session')

app.use(session({

 secret: 'my secret',

 resave: false,

 saveUninitialized: true,

 cookie: { secure: false }

}))

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

 const password = req.body

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

  req.session.user = { username }

  res.redirect('/')

 } else {

  res.send('Login failed.')

 }

})

使用 express-session 中间件设置 session,如果登录成功,将用户名存储到 session 中,并重定向到首页。在首页中可以通过 req.session.user 获取用户信息。

完成以上步骤,一个简单的 Node.js 用户登录验证就实现了。当然,实际应用还需要更完善的处理方式,比如加入密码加密、验证码、邮箱验证等功能,以保证用户信息的安全性和完整性。

  
  

评论区

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