J'ai appris sur JWT et je suis confronté à ce problème dans lequel la réponse donne comme JsonWebTokenError. La génération de jetons fonctionne bien. Mais la vérification du jeton me donne une erreur indiquant que "JsonWebTokenError" avec un message "signature invalide". Voici mon code

const express = require('express');
const jwt = require('jsonwebtoken');

const app = express();

app.get('/api', (request, response) => {
    response.json({
        message: 'This is an Authentication API'
    })
})

app.post('/api/posts', verifyToken, (request, response) => {
    jwt.verify(request.token, 'secretkey', (err, authData) => {
        if(err){
            response.json({err});
        }
        else{
            response.json({
                message: 'Post was created successfully',
                authData
            })
        }
    })

})

app.post('/api/login', (request, response) => {
    const user = {
        id: 1,
        user: 'sarath',
        email: 'sarathsekaran@gmail.com'
    }

    jwt.sign({user}, 'secretKey', (err, token) => {
       response.json({
        token
        }); 
    });
});

//VerifyToken
//Authori FORMAT: Bearer <token>

function verifyToken(request, response, next){
//Get auth header value
const bearerHeader = request.headers['authorization'];
//Checking if bearer is undefined
    if(typeof bearerHeader !== 'undefined'){
        //Spilt the token from Bearer
        const bearer = bearerHeader.split(' ');
        const bearerToken = bearer[1];
        //Set the token
        request.token = bearerToken;
        //Next Middleware
        next();
    }
    else{
        //Forbidden
        response.sendStatus(403);

    }
}

app.listen(5000, ()=>console.log('Server Started'));
0
Sarath Dev 4 nov. 2019 à 20:46

1 réponse

Meilleure réponse

Lors de la création d'un jeton jwt, vous devez utiliser une clé secrète unique et stocker cet unique ailleurs et non directement dans le code. Vous êtes confronté à cette erreur car votre clé secrète est en minuscule "k" à un endroit et en majuscule à l'autre.

2
amit gupta 4 nov. 2019 à 18:42