web-dev-qa-db-fra.com

Request-Promise émet "pas de mécanisme d'authentification défini" à l'aide de async/wait

Je viens d'essayer async/wait avec request-promise et ai rencontré cette erreur:

RequestError: Error: no auth mechanism defined
      at new RequestError (node_modules/request-promise-core/lib/errors.js:14:15)
      at Request.plumbing.callback (node_modules/request-promise-core/lib/plumbing.js:87:29)
      at Request.RP$callback [as _callback] (node_modules/request-promise-core/lib/plumbing.js:46:31)
      at self.callback (node_modules/request/request.js:188:22)
      at Auth.onRequest (node_modules/request/lib/auth.js:133:18)
      at Request.auth (node_modules/request/request.js:1360:14)
      at Context.<anonymous> (test/routes.js:37:41)
  From previous event:
      at Request.plumbing.init (node_modules/request-promise-core/lib/plumbing.js:36:28)
      at Request.RP$initInterceptor [as init] (node_modules/request-promise-core/configure/request2.js:41:27)
      at new Request (node_modules/request/request.js:130:8)
      at request (node_modules/request/index.js:54:10)
      at Context.<anonymous> (test/routes.js:37:24)

C’est un noeud final d’API que j’ai récemment construit et qui est censé créer un nouvel utilisateur dans MongoDB. Il utilise l’authentification de base fournie par la stratégie Passport, et j’ai testé avec Postman que cela fonctionne. Je ne sais pas exactement pourquoi cette erreur est générée.

Mon code de demande (en moka):

it("creates a new user", async () => {
  const options = {
    method: "POST",
    uri: `http://localhost:${process.env.PORT}/api/users`,
    headers: {
      "User-Agent": "Request-Promise",
      "Content-Type": "application/json"
    },
    body: {
      email: "[email protected]",
      password: "password",
      firstName: "John",
      lastName: "Smith"
    },
    json: true
  };
  const resp = await request(options).auth(APP_ID, SIGNATURE, false);
  expect(resp).to.be.an("object");
});

Edit: J'ajouterais probablement que j'utilise les nœuds 8.2.1 et 5.3.0 de npm.

7
spicypumpkin

Résolu pour moi en changeant de:

auth: { Bearer: token }

à:

auth: { bearer: token }

Pas la différence de cas sur 'porteur'.

1
Joseph Gruber

Ceci est généralement causé par le fait de ne pas fournir d'informations d'identification appropriées. Le code qui génère l'erreur peut être trouvé ici . Avez-vous vérifié que APP_ID et SIGNATURE ne sont pas undefined dans votre test?

0
Tobi Kremer