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

建免费的网站wordpress 分类 文章数

建免费的网站,wordpress 分类 文章数,网站建设推广合同范本,网站方案制作的培训node ORM #xff08;sequelize#xff09;使用、查询、验证及express 基础框架的搭建及实例的使用 一、思路 第一步#xff1a;肯定是用户要向接口传递邮箱、账号和密码了。 第二步#xff1a;接口这边#xff0c;先要验证。因为这里不是往数据库里存储数据#xff0c;…node ORM sequelize使用、查询、验证及express 基础框架的搭建及实例的使用 一、思路 第一步肯定是用户要向接口传递邮箱、账号和密码了。 第二步接口这边先要验证。因为这里不是往数据库里存储数据所以模型中的验证是用不了的。我们可以自己在路由里写点判断确定用户提交了邮箱、账号和密码而且不为空。 第三步因为用户既可以用账号登录也可以用邮箱登录。那我们接收数据的时候就不要接收email和username了。可以接收一个自定义的东西就叫做login无论发送的是邮箱还是账号都用login来接受。 第四步用接收到的这个login来查询数据库判断当前用户是否存在。无论是查询邮箱还是查询账号只要查到那就是存在。 第五步如果找到当前用户了再来比对密码是否正确。 第六步就算账号和密码都对得上还要验证当前用户是不是管理员。因为后台只有管理员才能登录普通用户是没有这种权限的。 第七步如果以上都成功了。就要用一个叫做jwt的包来生成token也就是令牌。前端拿到这个token后才能访问需要认证的接口。 包安装 //密码加密 npm i bcryptjs 生成token npm i jsonwebtoken 专门用来管理环境变量 npm i dotenv // 创建 HTTP 错误 http-errors 二、auth路由文件封装 const express require(express); const router express.Router(); const { User } require(../../models); const { Op } require(sequelize); const { BadRequest, Unauthorized, NotFound } require(http-errors); const { success, failure } require(../../utils/responses); const bcrypt require(bcryptjs); const jwt require(jsonwebtoken);/*** 管理员登录* POST /admin/auth/sign_in*/ router.post(/sign_in, async (req, res) {try {const { login, password } req.body;if(!login) {throw new BadRequest(邮箱/用户名必须填写。);}if(!password) {throw new BadRequest(密码必须填写。);}const condition {where: {[Op.or]: [{ email: login },{ username: login }]}};// 通过email或username查询用户是否存在const user await User.findOne(condition);if (!user) {throw new NotFound(用户不存在无法登录。);}// 验证密码const isPasswordValid bcrypt.compareSync(password, user.password);if (!isPasswordValid) {throw new Unauthorized(密码错误。);}// 验证是否管理员if (user.role ! 100) {throw new Unauthorized(您没有权限登录管理员后台。);}// 生成身份验证令牌const token jwt.sign({userId: user.id}, process.env.SECRET, { expiresIn: 30d });success(res, 登录成功。, { token });} catch (error) {failure(res, error);} });module.exports router; 三、app.js引入 // dotenv 必须放在所有的路由前面 require(dotenv).config();// 路由引入 const adminAuthRouter require(./routes/admin/auth); app.use(/admin/auth, adminAuthRouter);四、根目录创建一个.env文件 生成密钥 1 、自定义生成 SECREThello2、随机生成 1.在路由的顶部引用crypto这个模块是Node.js自带的无需安装。 const crypto require(crypto);2.然后去使用crypto模块在登录方法的顶部生成一个 32 位长的随机字符串并打印出来。 console.log(crypto.randomBytes(32).toString(hex));3.重新调用下接口检查命令行里可以看到已经生成成功了。我们将这一段复制到.env文件中就好了。 4.完成后别忘了修改环境变量后一定要重启服务。开发完成之后代码里关于crypto的也都可以删掉了。
http://www.hkea.cn/news/14427248/

相关文章:

  • wordpress生成多个尺寸图片大小谷歌优化排名公司
  • 西青集团网站建设河北建设工程信息交易中心
  • 黄岛网站建设公司首选邯郸企业建站
  • wordpress投票插件wp-pollsseo技术是什么意思
  • 西平企业网站建设网站怎么建
  • 厦门 网站建设企业邮箱wordpress导航页面
  • 素材免费下载网站wordpress插件入门
  • 宁波网站免费建设服务平台小程序制作平台免费版
  • 国外网站怎么做引流礼嘉网络推广
  • 网站没被百度收录湖南省建设厅官网查询
  • 网站什么认证对做电商好dns修改国外网站
  • 资源网站优化排名软件做汽配的网站
  • 找个网站懂的网站合肥市建设工程市场信息价
  • 网站基础建设和维护鲤城网站建设推广服务公司
  • 怎么分析网站建设的优缺点南京最新消息
  • 响应式企业网站怎么做网页长图
  • 开发企业网站的公司网站建设如何存数据
  • win10 网站建设软件有哪些网站建设制作方式有哪些
  • 网站的建设成本的账务处理怎么做淘客专属网站
  • 建设银行暑期招聘网站网易企业邮箱域名是什么
  • 毕业设计做网站前端国内网站开发语言
  • 电子商务网站的规划与分析可画简历模板官网
  • 网站与网页设计大数据营销的弊端
  • 宿州城市建设投资网站网站开发需要用哪些东西
  • 网站建站时间大数据
  • 建设网站外贸网络营销课程的心得体会
  • 商业网站案例电子商务自助建网站
  • 信誉好的龙岗网站制作上海app设计公司
  • 红酒专业网站建设浦口国家建设部网站
  • 网站开发小程序开发公司自己建立一个网站