0
votes

FeatherJs - Obtenez des informations utilisateur avec un crochet?

SO IM Essayez de FeatherJs et j'ai pu enregistrer un nouvel utilisateur, demander un jeton et demander des données protégées (à l'aide de l'autorisation dans l'en-tête).

Très important: J'utilise uniquement l'API HTTP. Les documents semblent pointer souvent sur le module de plumes client, que je n'utilise pas. P>

Donc, actuellement, j'ai une configuration super simple, j'ai un service de messagerie avec un texte. Un avant de crochet pour traiter le message. Ici, je veux récupérer les informations utilisateur: p> xxx pré>

cela ne fonctionne pas. Dans mon MDB, je ne récupérez que: P>

    const text = context.data.text
    const user = context.params.user;
    const token = context.params.accessToken


    context.data = {

      text,
      userId: user._id,
      tokId: token

    }
    return context;
  };
};


0 commentaires

3 Réponses :


0
votes

Pas tout à fait sûr de ce qui a mal tourné, mais je l'ai eu maintenant en train de créer un nouveau projet.

Maintenant, j'ai recréé ce projet en fait avant et obtenu la question comme ci-dessus, mais cette fois-ci, il a travaillé en quelque sorte. P>

pour quiconque souhaite connaître les étapes que j'ai faites pour "corriger" il: p>

1.Créez un nouveau dossier 2. Les plumes génèrent une application 3. Les plumes génèrent une authentification 4. Les plumes génèrent des services (nom pour le service: messages) 5. Les plumes génèrent un crochet (nom: processus-msg, avant le crochet, modèle: messages) 6. Ajoutez ceci au processus de crochet-msg: p>

module.exports = function (options = {}) {
  return async context => {


    const user = context.params.user;
    const text = context.data.text;

    context.data = {

      userId: user.email,
      text,
      dateTime: new Date().getTime()
    }
    return context;
  };
};


0 commentaires

0
votes

allez dans authentication.js et trouvez la définition de app.service . Juste là, créez un crochet après et ajoutez les détails que vous voulez que le client reçoive

app.service('authentication').hooks({

  before: {
     ...//as you currently have it
  },
  after: {
    create: {
       hook => {
          // hook.result.accessToken is already provided
          delete hook.params.user.password
          hook.result.user = hook.params.user;
          hook.result.token_type = 'Bearer';
          hook.result.exp = 3600;
        }
    }
  }
})

J'espère que cela vous aidera


0 commentaires

0
votes

Donc, si je comprends bien, vous voulez récupérer l'objet utilisateur du hook?

Vous pouvez simplement utiliser const user = context.user; pour accomplir cela.


0 commentaires