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

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 寫(xiě)入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)文章

  • node.js express框架簡(jiǎn)介與實(shí)現(xiàn)

    node.js express框架簡(jiǎn)介與實(shí)現(xiàn)

    這篇文章主要介紹了node.js express框架簡(jiǎn)介與實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • node.js爬蟲(chóng)爬取拉勾網(wǎng)職位信息

    node.js爬蟲(chóng)爬取拉勾網(wǎng)職位信息

    本篇文章主要介紹了node.js爬蟲(chóng)爬取拉勾網(wǎng)職位信息的方法。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • 總結(jié)幾道關(guān)于Node.js的面試問(wèn)題

    總結(jié)幾道關(guān)于Node.js的面試問(wèn)題

    這篇文章主要總結(jié)了幾道關(guān)于Node.js的面試問(wèn)題,通過(guò)這些問(wèn)題就來(lái)判斷一個(gè)人的Node.js水平是不太嚴(yán)謹(jǐn)?shù)?,但是它能讓你?duì)面試者在Node.js上的經(jīng)驗(yàn)如何有個(gè)大概的了解。有需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-01-01
  • npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題詳解

    npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題詳解

    npm?install總是一言難盡,下面這篇文章主要給大家介紹了關(guān)于npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • node安裝及環(huán)境變量配置詳細(xì)教程

    node安裝及環(huán)境變量配置詳細(xì)教程

    在很多前端項(xiàng)目中都需要配置node的環(huán)境變量,下面這篇文章主要給大家介紹了關(guān)于node安裝及環(huán)境變量配置的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 如何用npm命令刪除開(kāi)發(fā)項(xiàng)目中的node_modules文件夾

    如何用npm命令刪除開(kāi)發(fā)項(xiàng)目中的node_modules文件夾

    每個(gè)項(xiàng)目都會(huì)產(chǎn)生一個(gè)node_modules,每個(gè)node_modules少則幾十兆,多則幾百甚至上千兆,隨著時(shí)間的積累,維護(hù)項(xiàng)目的增加,整個(gè)項(xiàng)目目錄體積會(huì)越來(lái)越大,這篇文章主要給大家介紹了關(guān)于如何用npm命令刪除開(kāi)發(fā)項(xiàng)目中的node_modules文件夾,需要的朋友可以參考下
    2023-12-12
  • Node.js基礎(chǔ)入門(mén)之path模塊,url模塊,http模塊使用詳解

    Node.js基礎(chǔ)入門(mén)之path模塊,url模塊,http模塊使用詳解

    這篇文章主要為大家介紹了Node.js中的三個(gè)模塊(path、url、http)的使用詳解,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-03-03
  • Node.js開(kāi)啟Https的實(shí)踐詳解

    Node.js開(kāi)啟Https的實(shí)踐詳解

    最近因?yàn)楣ぷ餍枰?,需要將網(wǎng)站切換到了https。其實(shí)去年就想遷的遷移過(guò)去,但是資金緊缺就找了個(gè)免費(fèi)的證書(shū),實(shí)際效果不是很好。但是最近騰訊云推出了免費(fèi)的ssl證書(shū)申請(qǐng)。樓主是親測(cè)有效的。下面通過(guò)本文來(lái)一起看看Node.js開(kāi)啟Https的詳細(xì)步驟吧,有需要的可以參考借鑒。
    2016-10-10
  • 如何利用node.js開(kāi)發(fā)一個(gè)生成逐幀動(dòng)畫(huà)的小工具

    如何利用node.js開(kāi)發(fā)一個(gè)生成逐幀動(dòng)畫(huà)的小工具

    這篇文章主要給大家介紹了關(guān)于如何利用node.js開(kāi)發(fā)一個(gè)生成逐幀動(dòng)畫(huà)小工具的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • nodejs基于WS模塊實(shí)現(xiàn)WebSocket聊天功能的方法

    nodejs基于WS模塊實(shí)現(xiàn)WebSocket聊天功能的方法

    這篇文章主要介紹了nodejs基于WS模塊實(shí)現(xiàn)WebSocket聊天功能的方法,結(jié)合實(shí)例形式分析了nodejs使用WS模塊進(jìn)行WebSocket通信實(shí)現(xiàn)聊天功能的具體操作技巧,需要的朋友可以參考下
    2018-01-01

最新評(píng)論

桃园县| 双桥区| 军事| 榆林市| 沛县| 十堰市| 红河县| 寿光市| 泗洪县| 东阳市| 石林| 余庆县| 金阳县| 嘉黎县| 连江县| 沙坪坝区| 靖州| 阜新市| 奎屯市| 潜江市| 江川县| 建宁县| 宜良县| 徐闻县| 丰顺县| 澎湖县| 浙江省| 西昌市| 汶川县| 沙洋县| 增城市| 淮北市| 谢通门县| 巢湖市| 台东市| 三亚市| 永修县| 刚察县| 淮北市| 德州市| 潼关县|