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)點對點實時通訊的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)
Excel.js是一個強大的JavaScript庫,它提供了方法處理Excel文件,例如創(chuàng)建和編輯工作簿、讀取和寫入數(shù)據(jù)、處理行和列、設置樣式、導入和導出數(shù)據(jù)等,本文介紹使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)的方法,一起看看吧2024-01-01DevEco?Studio設置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等解決辦法
這篇文章主要給大家介紹了關(guān)于DevEco?Studio設置Nodejs提示路徑只能包含英文、數(shù)字、下劃線等的解決辦法,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01利用adb shell和node.js實現(xiàn)抖音搶紅包功能(推薦)
這篇文章主要介紹了利用adb shell和node.js實現(xiàn)抖音搶紅包功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2018-02-02Nodejs使用exceljs實現(xiàn)excel導入導出
在日常開發(fā)中,我們常需在后臺管理系統(tǒng)中實現(xiàn)數(shù)據(jù)的導入與導出功能,以便與?Excel?文件進行交互,本文將使用使用exceljs實現(xiàn)excel導入導出功能,需要的可以參考下2024-03-03