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

湖南建设网站公司双11销售数据

湖南建设网站公司,双11销售数据,网站建设交印花税嘛,专注河南网站建设目录 0 前言 1 初始化 2 注册登录 2.1 注册 2.1.1 功能:密码加密(2.3.3) 2.1.1.1 操作 2.1.1.2 bcryptjs详解 2.1.2 优化:表单数据验证(2.5) 2.1.2.1 过时代码修正 2.1.2.2 关键操作 0 前言 …

目录

0 前言 

1 初始化

2 注册登录 

2.1 注册

2.1.1 功能:密码加密(2.3.3)

2.1.1.1 操作 

2.1.1.2 bcryptjs详解

2.1.2 优化:表单数据验证(2.5)

2.1.2.1 过时代码修正

2.1.2.2 关键操作


0 前言 

本章仅记录部分功能代码(以前文章中未涉及的新内容)以及所遇到的问题

详细内容见  项目首页 - api系统 - GitCode  中的指导文档

❗❗❗最终完整代码也会上传至GitCode中,收藏方便查找

注:部分标题后面跟了原文档中的序号,方便查看


1 初始化

此部分暂无内容


2 注册登录 

2.1 注册

2.1.1 功能:密码加密(2.3.3)

2.1.1.1 操作 

使用 bcryptjs 对用户密码进行加密 

安装指定版本的 bcryptjs :

npm i bcryptjs@2.4.3

导入 bcryptjs :

const bcrypt = require('bcryptjs')

在注册用户的处理函数中,确认用户名可用之后,调用 bcrypt.hashSync(明文密码, 随机盐的长度) 方法,对用户的密码进行加密处理:

// 对用户的密码,进行 bcrype 加密,返回值是加密之后的密码字符串
userinfo.password = bcrypt.hashSync(userinfo.password, 10)

2.1.1.2 bcryptjs详解

bcrypt.hashSync 是 `bcrypt` 库中用于同步生成哈希值的函数,在 Node.js 中经常使用该库来对密码等敏感信息进行哈希处理。以下详细介绍 bcrypt.hashSync 函数的参数:

函数

bcrypt.hashSync(data, saltOrRounds);

参数说明

1. data
类型:string
描述:需要进行哈希处理的数据,通常是用户的密码。这是一个必需的参数,代表你要加密的原始文本。

2. saltOrRounds
类型:string 或 number
描述:该参数可以是一个盐值(string 类型),也可以是生成盐的轮数(number 类型)。

当 saltOrRounds 为 number 类型时
它代表生成盐的轮数,也称为成本因子(cost factor)。这个值越大,生成盐和哈希值所花费的时间就越长,安全性也相对更高。推荐的值通常在 10 - 12 之间。
bcrypt 会根据这个轮数自动生成一个随机的盐值,然后使用这个盐值对 data 进行哈希处理。

当 saltOrRounds 为 string 类型时
它代表一个预先定义好的盐值。使用自定义盐值时,每次使用相同的盐和数据进行哈希处理,会得到相同的哈希结果。
一般情况下,不建议手动指定盐值,因为 bcrypt 自动生成的随机盐值可以更好地保证安全性。

返回值

bcrypt.hashSync 函数会返回一个包含盐值和哈希值的字符串,这个字符串可以安全地存储在数据库中,用于后续的密码验证。


2.1.2 优化:表单数据验证(2.5)

2.1.2.1 过时代码修正

const joi = require('@hapi/joi') 的写法现在已经失效,

应该这样导入:const joi = require('joi')


2.1.2.2 关键操作

安装 @hapi/joi 包,为表单中携带的每个数据项,定义验证规则:

npm install @hapi/joi@17.1.0

安装 @escook/express-joi 中间件,来实现自动对表单数据进行验证的功能:

 npm i @escook/express-joi

常用验证规则:

 /*** string() 值必须是字符串* alphanum() 值只能是包含 a-zA-Z0-9 的字符串* min(length) 最小长度* max(length) 最大长度* required() 值是必填项,不能为 undefined* pattern(正则表达式) 值必须符合正则表达式的规则*/

注意:一定要先指定一种数据类型string()或者其他(包括any()),然后才能执行后续操作


导出规则

// 注册和登录表单的验证规则对象
exports.reg_login_schema = {
// 表示需要对 req.body 中的数据进行验证body: {username,password,},}

使用规则

 // 1. 导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')// 2. 导入需要的验证规则对象
const { reg_login_schema } = require('../schema/user')//...router.post('/reguser', expressJoi(reg_login_schema), userHandler.regUser)

持续更新中...

http://www.dtcms.com/wzjs/503571.html

相关文章:

  • 免费cms网站百度关键词网站排名优化软件
  • 用wordpress建一个网站吗自媒体培训
  • 列出网站开发建设的步骤网站建设与管理
  • 建设网站的申请报告搜索引擎营销案例
  • 西安网站推广慧创广告联盟
  • 茂名本土网站建设公司百分百营销软件官网
  • 厦门专业网站制作营销案例100例简短
  • 河南住房和城乡建设局网站投放广告的渠道有哪些
  • 昆明hph网站建设长沙seo步骤
  • 一个产品营销策划方案长沙有实力的关键词优化价格
  • 卢松松网站怎么做cba最新消息
  • 网站建设与维护内容乔拓云建站平台
  • 什么软件可以做网站天门seo
  • 旅游行业做网站免费自媒体网站
  • 高级营销型网站建设优化大师下载
  • 如何攻击织梦做的网站网页设计代做
  • 2015年做网站行不行百度seo关键词排名优化软件
  • 佛山做网站制作公司找百度
  • 做网站图标的软件网站关键词
  • 做网站服装app怎样做推广是免费的
  • 长葛做网站免费网络营销推广软件
  • 公司网站实名认证怎么做百度用户服务中心官网
  • 什么网站做3d模型能赚钱灰色广告投放平台
  • 营销网站制作哪家好优化大师有用吗
  • 水立方建设集团有限公司网站销售方案
  • 商城网站不易优化谷歌网站优化
  • wordpress错误怎么解决方法seo优化工作
  • 汽车营销服务网站建设南和网站seo
  • 支付行业的网站怎么做baidu百度一下
  • 6生肖竞猜网站建设搜狐新闻手机网