亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

express + jwt + postMan驗證實現(xiàn)持久化登錄

 更新時間:2019年06月05日 09:14:52   作者:阿西瓜  
這篇文章主要介紹了express + jwt + postMan驗證實現(xiàn)持久化登錄,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

原理

第一次登陸時會返回一個經(jīng)過加密的token,下一次訪問接口(攜帶登錄返回你的token)的時候,會對token進行解密,如果解密正在進行,說明你已經(jīng)登錄,再把過期時間延長

下載

npm init -y // 一鍵初始化
npm install express -s // 下載express
npm install cors // 跨域中間件
npm install body-parser // body-parser中間件 解析帶請求體的數(shù)據(jù)(post,put)
npm install jsonwebtoken // 持久化登錄 jwt json web token

基本配置

// 引入express
let express = require('express')
let cors = require('cors')
let bodyParser = require('body-parser')
let jwt = require("jsonwebtoken")

let banner = require("./banner")

// 拿到服務器
let app = express()

app.use(cors())
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))

// listen 后面跟著的是端口
app.listen(8000,function(){
 console.log('OK')
})

模擬一個登陸的接口

app.post('/login',function(req,res){
 let {username} = req.body
 console.log(username)
 res.json({
  // 進行加密的方法
  // sing 參數(shù)一:加密的對象 參數(shù)二:加密的規(guī)則 參數(shù)三:對象
  token:jwt.sign({username:username},'abcd',{
   // 過期時間
   expiresIn:"1h"
  }),
  username,
  code:200
 })
})

postMan模擬 發(fā)送POST請求

接收到數(shù)據(jù)

得到token

登錄持久化驗證

把 token 寫入header

// 登錄持久化驗證接口 訪問這個接口的時候 一定要訪問token(前端頁面每切換一次,就訪問一下這個接口,問一下我有沒有登錄/登陸過期)
// 先訪問登錄接口,得到token,在訪問這個,看是否成功
app.post('/validate',function(req,res){
 // 訪問 token
 let token = req.headers.authorization;
 // console.log(token)
 // 驗證token合法性 對token進行解碼,解碼方式要和加密方式一樣
 jwt.verify(token,'abcd',function(err,decode){
  if(err){
   res.json({
    msg:'當前用戶未登錄'
   })
  }else {
   // 證明用戶已經(jīng)登錄
   res.json({
    username:decode.username,
    msg:'已登錄'
   })
   token:jwt.sign({username:decode.username},'abcd',{
    // 過期時間
    expiresIn:"1h"
   })
  }
 })
})

已有登錄賬號,持久化登錄成功

設置登錄過期時間

token:jwt.sign({username:decode.username},'abcd',{
 // 如果過期時間為1秒
 expiresIn:"1s"
})

獲得 token

設置頭部信息

驗證 過期時間生效

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nodejs 使用nodejs-websocket模塊實現(xiàn)點對點實時通訊

    nodejs 使用nodejs-websocket模塊實現(xiàn)點對點實時通訊

    這篇文章主要介紹了nodejs 使用nodejs-websocket模塊實現(xiàn)點對點實時通訊的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • 使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)

    使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)

    Excel.js是一個強大的JavaScript庫,它提供了方法處理Excel文件,例如創(chuàng)建和編輯工作簿、讀取和寫入數(shù)據(jù)、處理行和列、設置樣式、導入和導出數(shù)據(jù)等,本文介紹使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)的方法,一起看看吧
    2024-01-01
  • node.js中的forEach()是同步還是異步呢

    node.js中的forEach()是同步還是異步呢

    這篇文章主要討論并驗證了node.js中的forEach()是同步還是異步,思路和方法分享給大家,有需要的小伙伴可以參考下。
    2015-01-01
  • DevEco?Studio設置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等解決辦法

    DevEco?Studio設置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等解決辦法

    這篇文章主要給大家介紹了關(guān)于DevEco?Studio設置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等的解決辦法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-01-01
  • Node.js系列之發(fā)起get/post請求(2)

    Node.js系列之發(fā)起get/post請求(2)

    這篇文章主要為大家詳細介紹了Node.js系列之發(fā)起get/post請求,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 利用adb shell和node.js實現(xiàn)抖音搶紅包功能(推薦)

    利用adb shell和node.js實現(xiàn)抖音搶紅包功能(推薦)

    這篇文章主要介紹了利用adb shell和node.js實現(xiàn)抖音搶紅包功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Nodejs使用exceljs實現(xiàn)excel導入導出

    Nodejs使用exceljs實現(xiàn)excel導入導出

    在日常開發(fā)中,我們常需在后臺管理系統(tǒng)中實現(xiàn)數(shù)據(jù)的導入與導出功能,以便與?Excel?文件進行交互,本文將使用使用exceljs實現(xiàn)excel導入導出功能,需要的可以參考下
    2024-03-03
  • node.js中格式化數(shù)字增加千位符的幾種方法

    node.js中格式化數(shù)字增加千位符的幾種方法

    這篇文章主要介紹了node.js中格式化數(shù)字增加千位符的幾種方法,本文給出3種實現(xiàn)方法,并分別給出實例代碼,需要的朋友可以參考下
    2015-07-07
  • nodejs實現(xiàn)簡單的gulp打包

    nodejs實現(xiàn)簡單的gulp打包

    因為之前一直有人給我推薦gulp,說他這里好哪里好的。實際上對我來說夠用就行。grunt熟悉以后實際上他的配置也不難,說到效率的話確實是個問題,尤其項目大了以后,目前位置遇到的項目都還可以忍受。不過不管怎么說,需要親自用過gulp之后才能品評他和grunt之間的優(yōu)劣。
    2017-12-12
  • Node輸出日志的正確方法示例

    Node輸出日志的正確方法示例

    這篇文章主要為大家介紹了Node輸出日志的正確方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03

最新評論