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

NodeJS使用JWT跨域身份驗(yàn)證方案詳解

 更新時(shí)間:2023年02月06日 09:11:00   作者:碰磕  
JWT是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn),其組成部分為Header、Payload、Signature.Payload部分才是真正的用戶信息,它是用戶信息經(jīng)過加密之后生成的字符串,Header和Signature是安全性相關(guān)的部分,只是為了保證token的安全性

JWT(jsonwebtoken)

目前最流行的跨域身份驗(yàn)證解決方案

在nodejs中使用

安裝

npm install jsonwebtoken --save

使用

1.在路由中引入

var jwt = require('jsonwebtoken');

2.定義一個(gè)密鑰

const secret = 'nidemiyao'//用于加密

3.定義生成token的函數(shù)

	//生成token
//info也就是payload是需要存入token的信息
	function createToken(info) {
	    let token = jwt.sign(info, secret, {
	        //Token有效時(shí)間 單位s
	        expiresIn:60 * 60*24
	    })
	return token
}

4.定義驗(yàn)證token的函數(shù)

//驗(yàn)證Token
function verifyToken(token) {
    console.log(token)
    return new Promise((resolve, reject) => {
      jwt.verify(token, secret, (error, result) => {
            if(error){
                reject(error)
            } else {
                resolve(result)
            }
      })
    })
}

5.可以設(shè)置白名單

定義一下

//白名單
const whiteList = ['/manage/login']

6.使用

路由名.use((req,res,next) => {
    if(!whiteList.includes(req.url)) {
    	//判斷請(qǐng)求頭是否攜帶正確的token
        verifyToken(req.headers.authorization).then(res => {
            next()
        }).catch(e => {
            res.status(401).send('403')//驗(yàn)證失敗返回什么
        })
    } else {
        next()
    }
})

場(chǎng)景

常用于登錄

通過創(chuàng)建密鑰返回給前臺(tái),前臺(tái)進(jìn)行一個(gè)本地保存,再在封裝請(qǐng)求中添加該請(qǐng)求頭token…即可實(shí)現(xiàn)加密!!!

//登陸
路由名.post("/manage/login",(req,res)=>{
    let {user}=req.body;
        let sql=`select *from admin where uname='${user.username}' and upassword='${user.password}'`;
        conn.query(sql,(err,result,fields)=>{
            if(err){
                return "失敗";
            }
            console.log(result)
            if(result.length!==0){
                let token =createToken(user)
                res.send({"result":result,"token":token});
            }else{
                res.send({"result":result});
            }
        })
});

這樣就實(shí)現(xiàn)簡(jiǎn)單的使用了~

到此這篇關(guān)于NodeJS使用JWT跨域身份驗(yàn)證方案詳解的文章就介紹到這了,更多相關(guān)NodeJS JWT內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談NodeJS中require路徑問題

    淺談NodeJS中require路徑問題

    學(xué)習(xí)Nodejs也是出于對(duì)這個(gè)新產(chǎn)物的好奇,而且有兩個(gè)重要項(xiàng)目也需要他的支持,所以要好好學(xué)學(xué)這個(gè)新語種。在nodejs中,模塊大概可以分為核心模塊和文件模塊。核心模塊是被編譯成二進(jìn)制代碼,引用的時(shí)候只需require表示符即可
    2015-05-05
  • 使用 node.js 模仿 Apache 小部分功能

    使用 node.js 模仿 Apache 小部分功能

    這篇文章主要介紹了使用 node.js 模仿 Apache 小部分功能,文中給大家講到了服務(wù)端渲染與客戶端渲染之間的區(qū)別,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • node.js?readline和line-reader逐行讀取文件方法

    node.js?readline和line-reader逐行讀取文件方法

    Readline是Node的原生模塊。它是專門為從任何可讀流逐行讀取內(nèi)容而開發(fā)的。它可用于從命令行讀取數(shù)據(jù),line-reader模塊是Node.js中逐行讀取文件的開源模塊。它不是本地模塊,所以你需要使用npm(節(jié)點(diǎn)包管理器)安裝它
    2022-10-10
  • 解決node-webkit 不支持html5播放mp4視頻的方法

    解決node-webkit 不支持html5播放mp4視頻的方法

    本文給大家分享的是解決node-webkit 不支持html5播放mp4視頻的方法,其原因大概是因?yàn)閚ode-webkit沒有購買mp4格式的專利授權(quán),恩,我們來想個(gè)辦法來解決這個(gè)事情吧。
    2015-03-03
  • 詳解如何使用Node.js編寫命令工具——以vue-cli為例

    詳解如何使用Node.js編寫命令工具——以vue-cli為例

    本篇文章主要介紹了如何使用Node.js編寫命令工具——以vue-cli為例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • nodejs中模塊定義實(shí)例詳解

    nodejs中模塊定義實(shí)例詳解

    這篇文章主要介紹了nodejs中模塊定義方法,結(jié)合實(shí)例形式分析了nodejs模塊的原理、常見模塊及相應(yīng)的定義方法,需要的朋友可以參考下
    2017-03-03
  • nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能

    nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能

    給大家通過一個(gè)實(shí)例來教學(xué)如何用nodejs實(shí)現(xiàn)爬取網(wǎng)站圖片功能,有興趣的朋友收藏一下吧。
    2017-12-12
  • nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法

    nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法

    這篇文章主要介紹了nodejs報(bào)digital?envelope?routines::unsupported錯(cuò)誤的最新解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺(tái)示例

    Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺(tái)示例

    本篇文章主要介紹了Highcharts+NodeJS搭建數(shù)據(jù)可視化平臺(tái),詳細(xì)的介紹了使用Highcharts框架的經(jīng)驗(yàn),有興趣的可以了解一下。
    2017-01-01
  • Nodejs 構(gòu)建Cluster集群多線程Worker threads

    Nodejs 構(gòu)建Cluster集群多線程Worker threads

    這篇文章主要為大家介紹了Nodejs 構(gòu)建Cluster集群多線程Worker threads示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10

最新評(píng)論

泗阳县| 临漳县| 涟源市| 浦县| 惠州市| 乐东| 肥东县| 文山县| 南丹县| 东宁县| 揭西县| 龙口市| 桂平市| 六盘水市| 济南市| 潼南县| 曲沃县| 舞阳县| 略阳县| 上饶市| 汾西县| 确山县| 馆陶县| 砀山县| 阜康市| 无为县| 莱芜市| 鄯善县| 衡阳市| 呼图壁县| 泰和县| 东乌珠穆沁旗| 伊通| 衡阳市| 佛冈县| 濮阳县| 阳新县| 芦溪县| 化德县| 龙岩市| 阿克陶县|