第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 JWT (nodeJS) 檢查身份驗證

使用 JWT (nodeJS) 檢查身份驗證

梵蒂岡之花 2023-07-29 15:18:52
我想通過添加中間件“checkAuth”來保護我的路由。該中間件檢查 jwt 令牌的有效性。我正在使用 Express 路由器。但我不明白該怎么做。我的 checkAuth 中間件:module.exports = (req, res, next) => {    let token = req.headers.authorization.split(" ")[1];    try {        jwt.verify(token)        console.log("ok")    }catch (e) {        res.status(403)    }    next();}
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

假設您使用的是?jsonwebtoken,則缺少“secret”字符串。

根據(jù)文檔,你應該這樣做。

創(chuàng)建令牌時:


var jwt = require('jsonwebtoken');

var token = jwt.sign({ foo: 'bar' }, 'shhhhh');

您還可以傳遞過期時間:


jwt.sign({

? data: 'foobar'

}, 'secret', { expiresIn: 60 * 60 });

用于驗證:


有幾種方法可以做到這一點。但是您應該需要相同的秘密字符串來驗證您用于登錄的信息。此外,您還需要為 jwt.verify 分配一個變量或通過回調調用它,以便訪問解碼的數(shù)據(jù),例如用戶 ID 等。


// verify a token symmetric - synchronous

var decoded = jwt.verify(token, 'shhhhh');

console.log(decoded.foo) // bar


// verify a token symmetric

jwt.verify(token, 'shhhhh', function(err, decoded) {

? console.log(decoded.foo) // bar

});


// invalid token - synchronous

try {

? var decoded = jwt.verify(token, 'wrong-secret');

} catch(err) {

? // err

}


// invalid token

jwt.verify(token, 'wrong-secret', function(err, decoded) {

? // err

? // decoded undefined

});


查看完整回答
反對 回復 2023-07-29
?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

創(chuàng)建一個名為“verifyToken”的新函數(shù)


我建議答應一下。async所以你可以在函數(shù)中結合使用它await


function verifyToken(token){

  return new Promise((res, err) => {

    jwt.verify(token, "secret key", (err) => {

      if (err) rej(err)

      res(true)

    })

  })

}

它的承諾是基于的?,F(xiàn)在,您只需將令牌傳遞給它解析為 true 或 false 的函數(shù)即可:


module.exports = async (req, res, next) => {

    let token = req.headers.authorization.split(" ")[1];

    try {

        await verifyToken(token);

        console.log("ok")

    }catch (e) {

        res.status(403)

    }


    next();

}


查看完整回答
反對 回復 2023-07-29
  • 2 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號