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

node中token的生成與解析配置

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

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

token的生成

JSON Web Token(JWT) 是一種基于JSON的輕量級身份驗證和授權(quá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有效期

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

4 對用戶信息進行token化處理 對用戶信息處理的時候,推薦將用戶密碼與頭像信息去掉

// 登錄
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) {
        // 對用戶信息處理的時候,推薦將用戶密碼與頭像信息去掉
        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 除了這個地址,其他的URL都需要驗證token
app.use(expressJWT({secret: config.SECRET_KEY}).unless({path: ['/api/login']  }));

問題描述

在使用express-jwt的過程中遇到了如下問題

該問題由 6.0.0 版本 更改引起。

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

在提供第三方庫作為機密時,需要 algorithms 參數(shù)來防止?jié)撛诘慕导壒簟?/p>

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)容請搜索腳本之家以前的文章或繼續(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)問題,需要的朋友可以參考下
    2014-09-09
  • Egret引擎開發(fā)指南之創(chuàng)建項目

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

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

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

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

    Node.JS利用PhantomJs抓取網(wǎng)頁入門教程

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

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

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

    一文秒懂nodejs中的異步編程

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

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

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

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

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

    Node.js中使用jQuery的做法

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

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

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

最新評論

东阳市| 天峻县| 友谊县| 汪清县| 武穴市| 克山县| 乐安县| 左云县| 巫山县| 四平市| 三明市| 荆州市| 新疆| 上饶市| 花莲县| 阿勒泰市| 河西区| 长顺县| 洞口县| 肃北| 广昌县| 宝兴县| 聊城市| 泸水县| 时尚| 五大连池市| 旌德县| 方正县| 鄂温| 九龙县| 卫辉市| 绥阳县| 丹巴县| 南康市| 剑川县| 科尔| 枝江市| 涞水县| 南丹县| 上林县| 西华县|