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

重庆建网站要多少钱wordpress内网和外网

重庆建网站要多少钱,wordpress内网和外网,如何建设一个视频小网站,软件开发外包公司是干嘛的node ORM (sequelize)使用、查询、验证及express 基础框架的搭建及实例的使用 一、思路 第一步:肯定是用户要向接口传递邮箱、账号和密码了。 第二步:接口这边,先要验证。因为这里不是往数据库里存储数据,…

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 、自定义生成

SECRET=hello

2、随机生成

1.在路由的顶部引用crypto,这个模块是Node.js自带的,无需安装。
const crypto = require('crypto');
2.然后去使用crypto模块,在登录方法的顶部,生成一个 32 位长的随机字符串,并打印出来。
  console.log(crypto.randomBytes(32).toString('hex'));
3.重新调用下接口,检查命令行里,可以看到已经生成成功了。我们将这一段,复制到.env文件中就好了。

4.完成后,别忘了,修改环境变量后,一定要重启服务。开发完成之后,代码里关于crypto的也都可以删掉了。

http://www.yayakq.cn/news/754643/

相关文章:

  • 服务器买好了怎么搭建自己的网站寻求一个专业网站制作公司
  • 做企业网站一般要多少钱怀柔区企业网站设计机构提供
  • 郑州建设网站定制做网站的价格
  • 建设厅网站文件主机做网站服务器
  • 手机网站根目录wordpress邮箱汉化插件下载地址
  • 简单的网站建设公司的模板下载凡客诚品官网手机下载
  • 网站网上商城制作各种颜色做网站给人的心里暗示
  • 织梦网站访问量统计代码西安网站建设有限公司
  • 域名访问网站是什么意思如何通过做网站和公众号盈利
  • 哈尔滨市香坊区建设局网站不同网站相似的页面百度收录吗
  • 陕西十二建设有限公司网站北京住房和建设部网站首页
  • cms仿站教程中文在线っと好きだっ最新版
  • 网页制作教程html网站制作方案相信乐云seo
  • 免费网站seo有关房地产开发建设的网站
  • 人人车的网站找谁做的陈铭生
  • 凡科手机建站教程crm客户管理系统开发
  • 母婴网站建设宜宾建设招标网站
  • 南宁网站建设团队买网站账号做推广
  • 网站开发江西wordpress评论显示ua
  • 南通市优普网站建设哪个网站能查是否做股东
  • 网站建设方案哪家好 推荐网络管理系统包括哪五大功能
  • 企业网站开发计划书物流网络优化
  • 网站建设皖icp密码管理系统admin
  • html展示网站源代码游戏平台网站建设
  • 有专业做外贸的网站吗房产网站流量排名
  • 做很多网站海南网纹瓜
  • 怎样建设一个公司网站做什么网站赚钱最快
  • 小程序推广平台无锡网站优化建站
  • 怎样建立网站平台自己的店铺如何弄小程序
  • 莱州市双语网站公众号怎么制作二维码