Bonjour à tous,

je réalise une api en NodeJs et j'utilise également expressJs.

Tous mes appels se font correctement mais j'ai toujours une erreur côté sereur : UnauthorizedError: jwt malformed.

Cela vient de mon middleware Authorize() au niveau de la fonction jwt({ ... }).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
const jwt = require('express-jwt');
const {
    secret
} = require('config.json');
const db = require('_helpers/db');
const role = require('../_helpers/role');
 
module.exports = authorize;
 
function authorize(roles = []) {
    // roles param can be a single role string (e.g. Role.User or 'User') 
    // or an array of roles (e.g. [Role.Admin, Role.User] or ['Admin', 'User'])
    if (typeof roles === 'string') {
        roles = [roles];
    }
    return [
        // authenticate JWT token and attach user to request object (req.user)
        jwt({
            secret,
            algorithms: ['HS256']
        }),
 
        // authorize based on user role
        async (req, res, next) => {
            const user = await db.User.findById(req.user.id);
 
            if (!user || (roles.length && !roles.includes(user.role))) {
                // user no longer exists or role not authorized
                return res.status(401).json({
                    message: 'Unauthorized'
                });
            }
 
            // authentication and authorization successful
            req.user.role = user.role;
            const refreshTokens = await db.RefreshToken.find({
                user: user.id
            });
 
            req.user.ownsToken = token => !!refreshTokens.find(x => x.token === token);
            next();
        }
    ];
}
Où est mon erreur ?

J'ai suivi le tuto suivant pour réaliser mon API : https://jasonwatmore.com/post/2018/1...th-example-api

Merci d'avance pour votre aide.