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

深圳建设局网站首页推广拉新任务的平台

深圳建设局网站首页,推广拉新任务的平台,太原做推广的公司,c 网站建设综合报告目录 前言 JWT组成部分 JWT工作原理 在Express中使用JWT 安装JWT相关的包 导入JWT相关的包 定义密钥 登录成功后调用jwt.sign()生成JWT字符串 将JWT字符串还原为JSON对象 捕获解析JWT失败后产生的错误 结尾 前言 Session 认证机制需要配合 Cookie 才能实现。由于 Co…

目录

前言

JWT组成部分

JWT工作原理

在Express中使用JWT

安装JWT相关的包

导入JWT相关的包

定义密钥

登录成功后调用jwt.sign()生成JWT字符串

将JWT字符串还原为JSON对象

捕获解析JWT失败后产生的错误

结尾


前言

Session 认证机制需要配合 Cookie 才能实现。由于 Cookie 默认不支持跨域访问,所以,当涉及到前端跨域请求后端接口的时候,需要做很多额外的配置,才能实现跨域 Session 认证。所以我们为了解决方便便捷的跨域问题,引入了JWT(jsonwebtoken)认证。

JWT组成部分

Header.payload.signature

也就是 头部.有效荷载.签名

在这三个部分中,只有payload部分才是真正的用户信息,经过加密生成的字符串。而其余两部分是安全性相关

JWT工作原理

用户信息通过Token字符串的形式保存在客户端浏览器中。服务器通过还原Token字符串的形式来认证用户的身份

在Express中使用JWT

安装JWT相关的包
npm i jsonwebtoken express-jwt

jsonwebtoken用于生成JWT字符串

express-jwt将JWT字符串解析还原成JSON对象

导入JWT相关的包
// 导入jwt相关的包
const jwt = require('jsonwebtoken')
const expressJWT = require('express-jwt')

允许跨域资源共享

/ 允许跨域资源共享
const cors = require('cors')
app.use(cors())

注意:需要先安装cors

npm i cors
定义密钥
const secretKey = '任意字符串'
登录成功后调用jwt.sign()生成JWT字符串

三个参数

jwt.sign(用户的信息对象,加密的密钥,配置对象有效token时间)

完整登录接口API

注意,需要解析post提交的表单数据

// 登录接口
app.post('/post',(req,res)=> {const userinfo = req.bodyif(userinfo.username !=='admin'||userinfo.password!=='000000'){return res.send({status:400,msg:'登录失败'})}const tokenStr = jwt.sign({username:userinfo.username},secretKey,{expiresIn:'60'})res.send({status:200,msg:'登录成功',token:tokenStr})
})

将生成的token字符串发送出去

使用postman模拟登录时发起的请求

可知已经成功登录并且生成了token字符串

将JWT字符串还原为JSON对象
// 将JWT字符串还原为JSON对象
app.use(expressJWT.expressjwt({secret:secretKey,algorithms:["HS256"]
}))

完整的获取对象代码

// 将JWT字符串还原为JSON对象
app.use(expressJWT.expressjwt({secret:secretKey,algorithms:["HS256"]
}))// get请求
app.get('/get',(req,res)=>{res.send({status:200,message:'获取用户信息成功',data:{username:req.auth.username}})
})

使用postman

注意:需要添加请求头authorization,并且value值需要在token值前面添加Bearer

捕获解析JWT失败后产生的错误
使用全局错误处理中间件,捕获解析 JWT 失败后产生的错误
app.use((err, req, res, next) => {// 这次错误是由 token 解析失败导致的if (err.name === 'UnauthorizedError') {return res.send({status: 401,message: '无效的token',})}res.send({status: 500,message: '未知的错误',})
})

使用postman模拟请求

由此可以得出捕获到了错误原因

结尾

这样JWT认证就这样介绍结束了,感谢观看

http://www.wangmingla.cn/news/90213.html

相关文章:

  • 直播app开发一个需要多少钱建站合肥网络公司seo
  • 网站制度建设网站平台有哪些
  • 兼职网站做任务百度问一问人工客服怎么联系
  • wordpress 多媒体管理系统南京广告宣传公司seo
  • 武汉站到阳逻定制公交最新军事头条
  • 网站登录后台地址合肥瑶海区
  • 重庆推广一个网站百度网盘app下载安装手机版
  • 嘉兴网站开发公司互联网营销推广方案
  • 做网站公司找哪家公司百度关键词优化企业
  • 软件上传到那个网站做宣传搜索引擎优化排名案例
  • wordpress为什么慢百度推广优化师是什么
  • 佛山网站建设哪里有珠海百度seo
  • wordpress主题自媒体seo优化
  • 阿里云 建设网站怎么样百度收录规则2022
  • 国内免费无版权视频素材网站做一套二级域名网站怎么做
  • 自己做视频会员网站百度推广总部电话
  • 网站代码有哪些黄山seo排名优化技术
  • 效果好的网站建百度网盘下载速度
  • 服务器可以做网站中国十大品牌营销策划公司
  • 网上做游戏赚钱的网站培训公司
  • 苏州网站营销公司简介互联网推广平台有哪些公司
  • 厦门seo排名收费郑州网站seo公司
  • 政府网站图解怎么做如何让百度搜索到自己的网站
  • 网站的竞价怎么做百度电脑版网页版
  • html在网站开发中的应用百度百科词条入口
  • 专业手机建站价格百度seo不正当竞争秒收
  • ui设计案例网站直通车关键词优化
  • 企业网站怎么制作云盘搜索引擎入口
  • 个人动态网站营销方案包括哪些内容
  • 网站推广工作网络推广属于什么专业