Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre du Club
    Récupérer un token dans le header de la requête
    Bonjour,

    Je suis bloque dans mon projet, je n'arrive pas à récuperer mon token pour gérer mon système d'auth
    l
    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
     
    exports.login = (req, res) => {
      let emailLogin = req.body.email;
      let passwordLogin = req.body.password.toString();
     
      if (emailLogin !== '' || passwordLogin !== '') {
        sequelize.query(`SELECT id, password FROM user WHERE email = '${emailLogin}' LIMIT 1`, { type: sequelize.QueryTypes.SELECT })
        .then(user => {
          bcrypt.compare(passwordLogin, user[0].password, (error, success) => {
            if(error) console.log(error);
            if (success === true) {
              generateToken(user[0].id).then(token => {
                res.header('x-token', token).send('PASSWORD_MATCH');
              });
            }
          })
        }); 
      } 
     
    } // # login()



    mon middleware:
    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
     
    const jwt = require('jsonwebtoken');
    const security_token = require('../config/security-token');
     
    var auth = (req, res, next) => {
        var token ="";
        console.log(req.header('X-auth'))
     
        if (token) {
         try {
             var decoded = jwt.verify(token, security_token.TOKEN_SECURITY);
             console.log("decoded "+ decoded)
               next();
             } catch (e) {
               res.status(401).send('invalid token');
             }
        } else {
            res.status(401).send('no token');
        }
    }
     
    module.exports = {
        auth
    }


    le console log me retourne undefined je ne comprends pas pourriez-vous m'aider svp

  2. #2
    Expert éminent sénior
    Les headers http ne sont pas case sensitives mais bon ... T'as vérifié que c'était bien X-auth et pas x-auth par exemple ? Je dis ça parce que je vois un autre header qui est nommé x-token, du coup c'est incohérent.

    Tiens d'ailleurs c'est normal d'avoir X-auth d'un côté et x-token de l'autre ?

    Sinon en passant je ne sais pas avec quelle version de Node tu travailles mais le code est vraiment abominable. Ça fait mal au cœur de voir ça en 2019, des var des callbacks, brrrr.

    Ah aussi ton code SQL est vulnérable aux injections. Pas bien.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  3. #3
    Membre du Club
    Désolé de la réponse tardive, j'ai eu pas mal de soucis, pour mon code je suis en train apprendre je n'ai pas d'experience tu peux me dire comment rendre mon code meilleur, quand je teste ma requete sur Postman, ça se passe bien et j'arrive à voir mon header.

    Apres j'ai un front en ionic/angular peut être que c'est à cause de ça que je n'arrive pas à accéder à mon header de node js.

###raw>template_hook.ano_emploi###