nodejs中的express-jwt怎么使用

前端开发   发布日期:2025年03月22日   浏览次数:119

这篇“nodejs中的express-jwt怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“nodejs中的express-jwt怎么使用”文章吧。

nodejs中express-jwt的使用

express-jwt更新到7.x版本后更改了用法,无法像7.x版本之前那样使用express—jwt,导入、在中间件配置个密钥就行了,更新之后,需要在express-jwt中将其解构出来再使用。

也无法在排除的路径中使用req.user去获取用户token解密出来的数据。而是使用req.auth。

具体代码如下:

  1. const express = require('express')
  2. const app = express()
  3. const jwt = require("jsonwebtoken") // 导入jwt
  4. const {expressjwt} = require("express-jwt") //从express-jwt中解构
  5. const port = 3000
  6. const secretKEY = "lam12138" //密钥
  7. app.use(expressjwt({ secret:secretKEY, algorithms: ["HS256"] }).unless({path: ["/api/login"] })) //使用express-jwt这个中间件 排除路径为api/login
  8. app.post("/api/login",(req,res)=>{
  9. // 获得token
  10. const token = jwt.sign({username :"lam"},secretKEY,{expiresIn:"60s"})
  11. res.send({
  12. status:200,
  13. msg:"success",
  14. token
  15. })
  16. })
  17. app.get(
  18. "/protected",
  19. function (req, res) {
  20. // 即可在非排除路径下获得解密后的用户信息 通过req.auth 获取。相当于 express―jwt 6.X版本下的req.user
  21. console.log(req.auth)
  22. res.send("+-+")
  23. }
  24. );
  25. // 捕获错误的路由需要放在所有路由的后面
  26. app.use((err, req, res, next)=> {
  27. if(err.name == "UnauthorizedError"){
  28. res.status(401).send("无效的token...");
  29. }else {
  30. next(err);
  31. }
  32. });
  33. app.listen(port, () => console.log(`Example app listening on port http://127.0.0.1:${port}!`))

nodejs express-jwt is not a function问题

原:

  1. const expJWT = require("express-jwt");

改之后:

  1. const {expressjwt:jwt} = require("express-jwt");
  2. const keys=require("./config/index")
  3. app.use(jwt({ secret: keys.secretKey, algorithms: ['HS256'] }).unless({ path: [/^/login//] }));

以上就是nodejs中的express-jwt怎么使用的详细内容,更多关于nodejs中的express-jwt怎么使用的资料请关注九品源码其它相关文章!