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

宁波高端网站开发做公司网站别人能看到吗6

宁波高端网站开发,做公司网站别人能看到吗6,郑州网络推广软件,wordpress+社交链接目录 前言 服务器 编写登录接口API 使用sql语句查询数据库中是否有该用户 判断密码是否正确 生成JWT的Token字符串 配置解析token的中间件 配置捕获错误中间件 完整的登录接口代码 前言 本文介绍如何使用node编写登录接口以及解密生成token#xff0c;如何编写注册接…目录 前言 服务器 编写登录接口API 使用sql语句查询数据库中是否有该用户 判断密码是否正确 生成JWT的Token字符串 配置解析token的中间件 配置捕获错误中间件 完整的登录接口代码 前言 本文介绍如何使用node编写登录接口以及解密生成token如何编写注册接口已经在Node编写用户注册接口这篇文章中介绍本文是建立在编写注册接口这篇文章的基础之上 同时也可以在在前端html页面中向服务器发送post登录请求这篇文章中了解登录请求 服务器 关于创建服务器本文中和Node编写用户注册接口共用一个服务器已经引入了router对象 // 导入express模块 const express require(express)// 创建express服务器实例 const app express()// 导入跨域cors const cors require(cors)// 全局挂载 app.use(cors())// 配置解析表单数据中间件 app.use(express.urlencoded({extended:false}))// 导入用户路由对象 const userRouter require(./router/user) app.use(/api,userRouter)// 启动服务器 app.listen(3007,() {console.log(running the http://127.0.0.1:3007); }) 编写登录接口API 使用sql语句查询数据库中是否有该用户 const userinfo req.bodyconst sql select * from ev_users where username ?db.query(sql, userinfo.username, function (err, results) {// 执行 SQL 语句失败if (err) {return res.send({status:1,message:err.message})}// 执行 SQL 语句成功但是查询到数据条数不等于 1if (results.length ! 1) {return res.send({status:1,message:登录失败})}res.send(登录成功)}) 使用postman模拟发送登录请求查询是否有用户名为b 返回登录成功 数据库中有b用户 如果未注册 数据库中没有c用户 判断密码是否正确 调用了bcrypt.compareSync()方法用来解密因为在注册时已经把密码加密了所以需要解密 bcrypt.compareSync(用户提交的密码数据库中的密码) // 判断密码是否正确const compareResult bcrypt.compareSync(userinfo.password,results[0].password)if(!compareResult) return res.send({status:1,message:密码错误})res.send(登录成功) 验证b的密码是否正确 b的密码是000000 当把b的密码换成111111时也就是错误密码 返回密码错误 生成JWT的Token字符串 关于JWT认证可以浏览JWT认证这篇文章 生成token字符串时要把密码和用户头像剔除因为生成的token会保留在浏览器中很容易泄露 // 剔除完毕之后user 中只保留了用户的 id, username, nickname, email 这四个属性的值 const user { ...results[0], password: , user_pic: } 先安装jsonwebtoken npm i jsonwebtoken 导入jwt const jwt require(jsonwebtoken) 导入成功后调用jwt.sign()生成JWT字符串 jwt.sign(用户的信息加密的密钥配置对象有效token的时间) // 生成 Token 字符串const tokenStr jwt.sign(user, jwtSecreKey, {expiresIn: 10h, // token 有效期为 10 个小时}) 将生成的token字符串发送给客户端 在生成的的token字符串前拼接上Bearer,固定用法 res.send({status: 0,message: 登录成功,// 为了方便客户端使用 Token在服务器端直接拼接上 Bearer 的前缀token: Bearer tokenStr,}) 使用postman模拟发送请求 配置解析token的中间件 将jwt字符串还原为JSON对象在get请求时可以获得用户信息 安装express-jwt npm i express-jwt 导入 / 导入解析token字符串 const exoressjwt require(express-jwt) 解析token // 使用 .unless({ path: [/^\/api\//] }) 指定哪些接口不需要进行 Token 的身份认证 app.use(expressjwt.expressjwt({secret:jwtSecreKey,algorithms:[HS256], }).unless({path:[/^\/api\//]})) 配置捕获错误中间件 // 错误中间件 app.use(function (err, req, res, next) {// 捕获身份认证失败的错误if (err.name UnauthorizedError) return res.send({satus:1,message:身份认证失败})// 未知错误res.send({status:1,message:err.message})}) 完整的登录接口代码 // 导入express模块 const express require(express) // 导入数据库对象 const db require(../db/index)// 导入加密模块 const bcrypt require(bcryptjs)// 创建路由对象 const router express.Router()// 导入JWT const jwt require(jsonwebtoken) // 定义密钥 const jwtSecreKey notbald// 登录接口 router.post(/login,(req,res){const userinfo req.bodyconst sql select * from ev_users where username ?db.query(sql, userinfo.username, function (err, results) {// 执行 SQL 语句失败if (err) {return res.send({status:1,message:err.message})}// 执行 SQL 语句成功但是查询到数据条数不等于 1if (results.length ! 1) {return res.send({status:1,message:登录失败})}// 判断密码是否正确const compareResult bcrypt.compareSync(userinfo.password,results[0].password)if(!compareResult) return res.send({status:1,message:密码错误})// 生成token字符串展开运算符剔除密码和用户头像const user {...results[0],password:,user_pic:}// console.log(user);// 生成 Token 字符串const tokenStr jwt.sign(user, jwtSecreKey, {expiresIn: 10h, // token 有效期为 10 个小时})res.send({status: 0,message: 登录成功,// 为了方便客户端使用 Token在服务器端直接拼接上 Bearer 的前缀token: Bearer tokenStr,})}) }) 解析token以及全局捕获错误中间件在服务器中
http://www.sadfv.cn/news/44973/

相关文章:

  • 百度搜索官方网站如何利用网站来提升企业形象
  • 查工作单位的网站网站的建设费 账务处理
  • 安吉网站建设dede wap网站
  • 网站图片布局利用php做网站
  • 网站建设中主机放在哪里开封网站建设培训班
  • 网站在线生成器微信扫码关注登陆wordpress
  • 公司网站免费建站云计算公司排名
  • 网站建设实习心得图片 网站源码 采集
  • 网站建设山东聚搜网络一x广东三网合一网站建设报价
  • 安徽省住房和城乡建设厅网站领域本地wordpress外网访问
  • 泊头市网站建设价格网站开发技术汇总
  • 个人可以备案哪些网站如何做内网网站
  • 一建 建设网站网站建设供需
  • 现在一般做网站都是去哪家做的网站的服务器
  • 分享几款做淘客网站的服务器网站备案率定义
  • 怎么给自己喜欢的人做网站淘宝网站
  • app动效网站网站开发设计项目书
  • 推荐几个的网站推广平台怎么找客源
  • 做渐变色的网站怀化同城网站
  • 深圳网站建设 壹起航无锡建设机械网站
  • 医院网站建设哪家好网站建设和网络推广外包
  • 邵阳营销型网站北京设计公司哪家好
  • com网站怎么注册wordpress如何修改上传图片大小
  • 网站进行规划与设计环保网站模板 html
  • 南充网站网站建设英文网站建设设计
  • o2o网站建设如何学软件工程培训就业机构
  • 成都协会网站建设wordpress自学网
  • 自适应网站搭建网站服务器 试用
  • 网站备案 子域名长沙百度百科
  • 百度域名查询入口wordpress的seo收件箱