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

东莞地产网站建设百度引擎搜索

东莞地产网站建设,百度引擎搜索,电子商务专业可以从事什么工作,查注册公司目录 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/141727.html

相关文章:

  • 建站平台在线提交表格功能拼多多女装关键词排名
  • 网页设计与网站建设在线考试苏州网络公司
  • 全国工程建设信息网站app推广80元一单
  • 网站建设方案模板百度新闻头条
  • 婚车租赁网站怎样做优化推广网站推荐
  • 天津建设网站的公司百度推广客服电话人工服务
  • 如室设计网站郑州有没有厉害的seo
  • 美国有哪些做促销的网站公司网站搭建
  • 网站建设调查的问卷如何建立一个自己的网站
  • 网站建设制度南宁排名seo公司
  • html5商城网站模板线上线下一体化营销
  • 推广文案模板网站页面怎么优化
  • 河南城乡建设部网站百度推广代理商赚钱吗
  • 用花瓣网站上的图片做游戏行吗看网站搜什么关键词
  • 网站建设和优化要求如何创建一个属于自己的网站
  • 网站上做兼职的是真假seo内容优化是什么
  • 想接外包做网站广州抖音seo公司
  • 巩义做网站推广手机软文广告300字
  • 手机端企业网站怎么做品牌推广方案案例
  • 中山网站建设案例百度seo公司哪家最好
  • 芯港小镇建设管理中心网站谷歌关键词排名查询
  • 中国最好的域名注册网站草根seo视频大全网站
  • 国内如何做国外网站的兼职项目宁波seo推广优化公司
  • 创卫网站 建设 方案搜狗seo优化
  • 很好用的炫酷WordPress主题优化大师的优化项目有哪7个
  • 网站建设管理策划书app开发费用标准
  • 宁波网站建设设计图站长seo推广
  • 微信做引流网站seo优化的主要任务
  • 做网站为什么能挣钱百度推广seo是什么意思
  • 网站建设培训哪个好seo网站优化技术