当前位置: 首页 > news >正文

西安建设科技专修学院网站营销型企业网站建设的基本原则是

西安建设科技专修学院网站,营销型企业网站建设的基本原则是,做相册网站推荐,网站推广产品怎么做构建安全的用户登录API:从请求验证到JWT令牌生成 为了实现这个后端POST /api/users/login端点,我们可以使用Node.js和Express框架,并结合一些常用的库如jsonwebtoken、bcrypt和express-validator来处理验证和密码校验。下面是一个完整的示例…

构建安全的用户登录API:从请求验证到JWT令牌生成

为了实现这个后端POST /api/users/login端点,我们可以使用Node.js和Express框架,并结合一些常用的库如jsonwebtokenbcryptexpress-validator来处理验证和密码校验。下面是一个完整的示例代码:

1. 安装依赖

首先,确保你已经安装了以下依赖包:

  • express
  • jsonwebtoken
  • bcryptjs
  • express-validator
  • dotenv(用于管理环境变量)
npm install express jsonwebtoken bcryptjs express-validator dotenv

2. 配置环境变量

创建一个.env文件来存储JWT密钥和其他配置信息。

JWT_SECRET=your_jwt_secret_key
REFRESH_TOKEN_SECRET=your_refresh_token_secret_key
PORT=3000

3. 创建用户数据模型(模拟数据库)

假设我们有一个简单的内存数据库来存储用户数据。在实际应用中,你应该使用一个真正的数据库,比如MongoDB或PostgreSQL。

// users.js
const bcrypt = require('bcryptjs');const users = [{id: 1,email: 'user@example.com',password: bcrypt.hashSync('secretpassword', 8)}
];module.exports = { users };

4. 创建登录路由

创建一个app.js文件来设置Express服务器并定义登录路由。

// app.js
require('dotenv').config();
const express = require('express');
const jwt = require('jsonwebtoken');
const bcrypt = require('bcryptjs');
const { check, validationResult } = require('express-validator');
const { users } = require('./users');const app = express();
const PORT = process.env.PORT || 3000;app.use(express.json());// 登录路由
app.post('/api/users/login', [check('email', 'Invalid email').isEmail(),check('password', 'Password is required').not().isEmpty()
], (req, res) => {const errors = validationResult(req);if (!errors.isEmpty()) {return res.status(400).json({ errors: errors.array() });}const { email, password } = req.body;const user = users.find(u => u.email === email);if (!user) {return res.status(401).json({ message: 'Invalid email or password' });}const isMatch = bcrypt.compareSync(password, user.password);if (!isMatch) {return res.status(401).json({ message: 'Invalid email or password' });}// 生成JWT tokensconst accessToken = jwt.sign({ userId: user.id }, process.env.JWT_SECRET, { expiresIn: '15m' });const refreshToken = jwt.sign({ userId: user.id }, process.env.REFRESH_TOKEN_SECRET, { expiresIn: '7d' });res.json({access_token: accessToken,refresh_token: refreshToken});
});app.listen(PORT, () => {console.log(`Server is running on port ${PORT}`);
});

5. 运行服务器

确保你的.env文件已经配置好,然后运行服务器:

node app.js

6. 测试API

你可以使用Postman或cURL来测试这个API端点。

成功请求
curl -X POST http://localhost:3000/api/users/login \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "secretpassword"}'

响应:

{"access_token": "your_access_token","refresh_token": "your_refresh_token"
}
失败请求
curl -X POST http://localhost:3000/api/users/login \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "wrongpassword"}'

响应:

{"message": "Invalid email or password"
}

总结

以上代码实现了POST /api/users/login端点,处理了JSON请求,并根据请求内容返回相应的JWT tokens或错误信息。确保在生产环境中使用HTTPS来保护密码安全。

欢迎大家体验、试用阿里云百炼大模型和阿里云服务产品,链接如下:

阿里云百炼大模型

https://bailian.console.aliyun.com/

通义灵码_智能编码助手面向用户上线个人和企业版产品

https://tongyi.aliyun.com/lingma/pricing?userCode=jl9als0w

云工开物_阿里云高校计划助力高校科研与教育加速。

https://university.aliyun.com/mobile?userCode=jl9als0w

无影云电脑个人版简单易用、安全高效的云上桌面服务

https://www.aliyun.com/product/wuying/gws/personal_edition?userCode=jl9als0w

云服务器ECS省钱攻略五种权益,限时发放,不容错过

https://www.aliyun.com/daily-act/ecs/ecs_trial_benefits?userCode=jl9als0w

http://www.15wanjia.com/news/172106.html

相关文章:

  • 哈尔滨网站优化咨询网站策划书怎么做的美观
  • 个人商城网站制作费用深圳网站搜索排名
  • 用于建设教学网站的建站工具有哪些特点360建筑网如何注销账号
  • 学校网站建设评估两江新区建设管理局网站
  • 网站怎么快速收录网页设计代码链接怎么写
  • 全球网站排行榜中国网站的建设
  • 金塔精神文明建设网站做评测好的视频网站
  • 福安做网站聊城网站建设推广
  • 酒店网站建站网站编程工资多少
  • asp网站 证书抖音代运营商
  • 惠州网站建设公司哪家好明年做那个网站致富
  • 江门网站建设联系电话wordpress 开启rss
  • 网站开发软件工程师做网站是哪个专业
  • 湖南建设长沙网站建设价格辽宁大连网站建设
  • 仿建网站常州网站建设公司平台
  • 阿里云二级域名网站怎么建设做网站和做阿里巴巴
  • 教程网站后台密码全屋定制网
  • 郴州网站seo优化深圳生活免费信息网
  • 巴青网站制作昆明做网站ynlongtou
  • 学做旗袍衣服的网站推广网站免费
  • 漳州 网站建设公司加强网站和公众号建设
  • 南宁网站建设服务公司免费的会计做账系统
  • 关于建设网站的需求网店美工主要负责
  • 南网站建设人力招聘网站建设
  • 好的网站或网页推荐无法运行电脑wordpress
  • 长治网站制作怎么做做网站定金交多少合适
  • 免费网站模板软件云安区学校网站建设统计表
  • 太原网站制作费用wordpress高亮代码
  • discuz网站标题广东富盈建设有限公司企业网站
  • 建设网站的准备工作分为做网站常用哪种语言