需下载:
npm i express-jwt@6
npm i jsonwebtoken
第一步:用户提供凭证(例如用户名和密码)向服务器发送登录请求。

第二步:服务器验证凭证的有效性,并生成一个JWT。
(1)在app.js中(后端node.js)
var expressJWT = require("express-jwt")
app.use(expressJWT({
secret:'key',
algorithms:['HS256']
}).unless({
path: ["/login",{url: /^\/upload/, methods: ["GET"] }]
}))

(2)routes中的index.js文件中
引入
let jwt = require("jsonwebtoken")
第三步:服务器将生成的JWT作为响应返回给客户端。

第四步:客户端保存JWT,通常存储在浏览器的本地存储(localStorage)或会话存储(sessionStorage)中
第五步:客户端发送后续请求时,在请求的头部添加一个Authorization字段,值为"Bearer <JWT>",其中<JWT>是服务器返回的JWT。
第六步:服务器收到请求后,从请求头部获取JWT,并进行验证和解码。
第七步:如果JWT验证通过,并且未过期,服务器认为该请求是经过身份验证和授权的,可以继续处理请求。
但是需要注意的是,当我们写完JWT登录后,可能在其他页面上请求数据API会报401的错误。这通常表示未经授权或身份验证失败。这种错误通常与身份验证和访问权限相关。

导致这个问题的主要原因可能是在后端app.js中


我们并没有写我们请求数据接口,所以将数据请求的API加上就可以解决这个问题了。
本文详细介绍了使用npm的express-jwt和jsonwebtoken库实现JWT基于HTTP头的用户身份验证过程,包括生成JWT、验证JWT以及处理401错误的解决方案。
1380

被折叠的 条评论
为什么被折叠?



