最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node中token的生成與解析配置

 更新時(shí)間:2025年09月08日 15:37:46   作者:愛(ài)編程的小學(xué)究  
本文主要介紹了node中token的生成與解析配置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在用戶登錄成功之后為了記錄用戶的登錄狀態(tài)通常會(huì)將用戶信息編寫(xiě)為一個(gè)token,通過(guò)解析token判斷用戶是否登錄。

token的生成

JSON Web Token(JWT) 是一種基于JSON的輕量級(jí)身份驗(yàn)證和授權(quán)機(jī)制。它是一種開(kāi)放標(biāo)準(zhǔn)(RFC 7519),用于在網(wǎng)絡(luò)應(yīng)用中傳遞聲明。

1 安裝

npm i jsonwebtoken

2 引入jwt

const jwt = require("jsonwebtoken");

3 使用jwt,生成token

const jwt = require("jsonwebtoken");
// 獲取secret秘鑰
const config = require("../config.js");
const expiresIn = '1h' // token有效期

// 對(duì)用戶信息進(jìn)行加密 生成token
const generateToken = (user) => {
  const token = jwt.sign(
    {
      user_id: user.id,
      role: user.role,
    },
    config.SECRET_KEY,
    { expiresIn:expiresIn }
  );
  return 'Bearer ' + token;
};

4 對(duì)用戶信息進(jìn)行token化處理 對(duì)用戶信息處理的時(shí)候,推薦將用戶密碼與頭像信息去掉

// 登錄
exports.login = (req, res) => {
  const userinfo = req.body;
  if (!userinfo.username || !userinfo.password) {
    return res.send({
      message: "用戶名或者密碼不能為空!",
      status: 0,
    });
  }
  const sqlStr = `select * from user where username=?`;
  db.query(sqlStr, [userinfo.username], (err, results) => {
    if (err) {
      res.handleResult(err.message);
    } else if (results.length > 0) {
      const password = results[0].password;
      const isExit = bcrypt.compareSync(userinfo.password, password);
      if (isExit) {
        // 對(duì)用戶信息處理的時(shí)候,推薦將用戶密碼與頭像信息去掉
        const user = { ...results[0], password: "", avatar: "" };
        // 生成token
        const token = generateToken(user);
        res.handleResult("登錄成功!", 0,token);
      } else {
        res.handleResult("密碼不正確!");
      }
    } else {
      res.handleResult("用戶不存在!");
    }
  });
};

解析token

1 安裝

npm i express-jwt@5.3.3

2 引入expressJWT

const expressJWT = require("express-jwt");

3 使用expressJWT,解析token 需要注意的是token解析配置,必須在路由配置前設(shè)置

const expressJWT = require('express-jwt')
const config = require('./config')

// 配置token解析
// unless中的path 除了這個(gè)地址,其他的URL都需要驗(yàn)證token
app.use(expressJWT({secret: config.SECRET_KEY}).unless({path: ['/api/login']  }));

問(wèn)題描述

在使用express-jwt的過(guò)程中遇到了如下問(wèn)題

該問(wèn)題由 6.0.0 版本 更改引起。

方案一: 配置algorithms參數(shù)

在提供第三方庫(kù)作為機(jī)密時(shí),需要 algorithms 參數(shù)來(lái)防止?jié)撛诘慕导?jí)攻擊。

expressJwt({ secret: config.SECRET_KEY, algorithms: ['RS256'] });

方案二: 降低express-jwt的版本

npm i express-jwt@5.3.3

到此這篇關(guān)于node中token的生成與解析配置的文章就介紹到這了,更多相關(guān)node token生成內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nodejs異步回調(diào)的優(yōu)雅處理方法

    Nodejs異步回調(diào)的優(yōu)雅處理方法

    這篇文章主要介紹了Nodejs異步回調(diào)的優(yōu)雅處理方法,本文使用了ES6中的新特性,用一種十分優(yōu)雅的方式解決了回調(diào)問(wèn)題,需要的朋友可以參考下
    2014-09-09
  • Egret引擎開(kāi)發(fā)指南之創(chuàng)建項(xiàng)目

    Egret引擎開(kāi)發(fā)指南之創(chuàng)建項(xiàng)目

    Egret Engine(白鷺引擎)是一款使用TypeScript語(yǔ)言構(gòu)建的開(kāi)源免費(fèi)的移動(dòng)游戲引擎。白鷺引擎的核心定位是開(kāi)放,高效,優(yōu)雅。通過(guò)它,你可以快速地創(chuàng)建HTML5類(lèi)型的移動(dòng)游戲,也可以將游戲項(xiàng)目編譯輸出成為目標(biāo)移動(dòng)平臺(tái)的原生游戲應(yīng)用。
    2014-09-09
  • Node.js中的緩存機(jī)制:原理與應(yīng)用詳解

    Node.js中的緩存機(jī)制:原理與應(yīng)用詳解

    本文將深入探討緩存機(jī)制在 Node.js 中的應(yīng)用,包括其原理、實(shí)現(xiàn)方式和最佳實(shí)踐,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Node.JS利用PhantomJs抓取網(wǎng)頁(yè)入門(mén)教程

    Node.JS利用PhantomJs抓取網(wǎng)頁(yè)入門(mén)教程

    現(xiàn)今,網(wǎng)頁(yè)抓取已經(jīng)是一種人所共知的技術(shù)了,然而依然存在著諸多復(fù)雜性,下面這篇文章主要給大家介紹了Node.JS利用PhantomJs抓取網(wǎng)頁(yè)的方法教程,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-05-05
  • node?NPM庫(kù)promise?異步任務(wù)狀態(tài)管理

    node?NPM庫(kù)promise?異步任務(wù)狀態(tài)管理

    這篇文章主要介紹了node?NPM庫(kù)promise?異步任務(wù)狀態(tài)管理
    2023-07-07
  • 一文秒懂nodejs中的異步編程

    一文秒懂nodejs中的異步編程

    這篇文章主要介紹了深入理解nodejs中的異步編程,本文給大家介紹的非常想詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • vscode+nodejs+express搭建一個(gè)簡(jiǎn)單網(wǎng)站(附詳細(xì)圖文教程)

    vscode+nodejs+express搭建一個(gè)簡(jiǎn)單網(wǎng)站(附詳細(xì)圖文教程)

    作為前端開(kāi)發(fā),Nodejs已經(jīng)成了很多公司對(duì)我們這一崗位的硬性要求,而Express框架則是其中知名度最高、也是最受歡迎的Nodejs開(kāi)發(fā)框架,這篇文章主要介紹了vscode+nodejs+express搭建一個(gè)簡(jiǎn)單網(wǎng)站的相關(guān)資料,需要的朋友可以參考下
    2026-01-01
  • Node.js搭建Https服務(wù)過(guò)程詳解

    Node.js搭建Https服務(wù)過(guò)程詳解

    這篇文章主要為大家介紹了Node.js搭建Https服務(wù)過(guò)程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Node.js中使用jQuery的做法

    Node.js中使用jQuery的做法

    在Node.js中使用jQuery的做法,需要先安裝jquery,npm install jquery ,安裝后的版本是 3.1.0,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看下吧
    2016-08-08
  • Nodejs如何進(jìn)行性能監(jiān)控和分析優(yōu)化

    Nodejs如何進(jìn)行性能監(jiān)控和分析優(yōu)化

    Node.js應(yīng)用可能因?yàn)楦卟l(fā)、內(nèi)存泄漏、CPU密集型任務(wù)等原因?qū)е滦阅芟陆?影響用戶體驗(yàn)甚至系統(tǒng)穩(wěn)定性,通過(guò)性能監(jiān)控和分析,我們可以及時(shí)發(fā)現(xiàn)潛在問(wèn)題,并針對(duì)性地進(jìn)行優(yōu)化,確保系統(tǒng)正常運(yùn)行且具備良好的性能表現(xiàn)
    2024-06-06

最新評(píng)論

汽车| 茂名市| 永清县| 吴堡县| 崇左市| 漠河县| 江口县| 无锡市| 南丹县| 吉木萨尔县| 南雄市| 保定市| 文成县| 漳平市| 墨竹工卡县| 元朗区| 秀山| 海伦市| 普宁市| 白沙| 唐山市| 明溪县| 淮滨县| 南雄市| 琼海市| 那坡县| 宜良县| 邵东县| 德庆县| 清丰县| 拜泉县| 交口县| 邮箱| 大庆市| 探索| 商洛市| 文昌市| 柘城县| 安达市| 静乐县| 萨迦县|