簡體   English   中英

如何使用nodejs進行jwt令牌驗證

[英]how to jwt token verify using nodejs

如何在節點js中實現jwt驗證令牌工具。我已經嘗試但它沒有顯示錯誤,但它顯示未定義。如何解決此問題。

auth.py

function jwtAccessAuthCheck(accessToken)
{
    if(accessToken)
    {
        console.log("Sucess")
        jwt.verify(accessToken,"secretkey",function(err){
            if(err) {
                console.log(typeof(err.message))
                return err.message
            } 
            else {
                return "token"
            }
          });

    }
    else
    {
        return "Invalid token"
    }
}

routes.py

//Get Data from Database
router.get('/', async (req, res,next) => {
    (async function() {
        try {
          await client.connect();
          console.log("Connected correctly to server");
          const db = client.db('olc_prod_db');
          const token_validation = validate_token.validate_token(req.headers.authorization)
          console.log((token_validation))
          const r = await db.collection('Ecommerce').find().toArray();
          client.close();
          res.send(r)
        } catch(err) {
          console.log(err.stack);
        }
      })();

  });
const express = require('express');
const app = express();
const jwt = require('jsonwebtoken');
const bodyparser = require('body-parser');
const user = {username : "user",password : "pass"}

app.use(bodyparser.json());

const checkToken = function (req,res,next)
{
    const header = req.headers['authorization'];
    if(typeof header !== 'undefined')
    {
       const bearer = header.split(' ');
       const token = bearer[1];
       req.token=token;
       next();
     }
     else
     {
        res.sendStatus(403);
     }
    }


app.post('/login',function (req,res)
{
    const { body } = req;
    const { username } = body;
    const { password } = body;

    if(username === user.username && password === user.password)
    {
        jwt.sign({user},'privatekey',{expiresIn : '1h'},function (err,token){
            if(err)
            {
                console.log(err)
            }
            console.log(token);
            res.end();
        });
    }
    else
    {
        console.log('Error : Could not log in');
    }
});

app.get('/data',checkToken,function(req,res)
{
    jwt.verify(req.token,'privatekey',function (err,authorizedata)
    {
        if(err)
        {
            console.log('Error : Could not connect to the protected route');
            res.sendStatus(403);
        }
        else
        {
            res.json({
                message : 'Successful log in',
                authorizedata
            });
            console.log('Success : Connected to protected route');
        }

    });

});

app.listen(3000,console.log("Server is running at 3000"));

這就是我實現JWT令牌的方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM