欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

原理

第一次登陸時(shí)會(huì)返回一個(gè)經(jīng)過(guò)加密的token,下一次訪問(wèn)接口(攜帶登錄返回你的token)的時(shí)候,會(huì)對(duì)token進(jìn)行解密,如果解密正在進(jìn)行,說(shuō)明你已經(jīng)登錄,再把過(guò)期時(shí)間延長(zhǎng)

下載

npm init -y // 一鍵初始化
npm install express -s // 下載express
npm install cors // 跨域中間件
npm install body-parser // body-parser中間件 解析帶請(qǐng)求體的數(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")

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

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

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

模擬一個(gè)登陸的接口

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

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

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

得到token

登錄持久化驗(yàn)證

把 token 寫入header

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

已有登錄賬號(hào),持久化登錄成功

設(shè)置登錄過(guò)期時(shí)間

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

獲得 token

設(shè)置頭部信息

驗(yàn)證 過(guò)期時(shí)間生效

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nodejs 使用nodejs-websocket模塊實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)通訊

    nodejs 使用nodejs-websocket模塊實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)實(shí)時(shí)通訊

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

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

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

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

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

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

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

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

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

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

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

    Nodejs使用exceljs實(shí)現(xiàn)excel導(dǎo)入導(dǎo)出

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

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

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

    nodejs實(shí)現(xiàn)簡(jiǎn)單的gulp打包

    因?yàn)橹耙恢庇腥私o我推薦gulp,說(shuō)他這里好哪里好的。實(shí)際上對(duì)我來(lái)說(shuō)夠用就行。grunt熟悉以后實(shí)際上他的配置也不難,說(shuō)到效率的話確實(shí)是個(gè)問(wèn)題,尤其項(xiàng)目大了以后,目前位置遇到的項(xiàng)目都還可以忍受。不過(guò)不管怎么說(shuō),需要親自用過(guò)gulp之后才能品評(píng)他和grunt之間的優(yōu)劣。
    2017-12-12
  • Node輸出日志的正確方法示例

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

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

最新評(píng)論