Ложная социальная аутентификация с твиттером в экспресс-узле Ошибка: подключиться - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь издеваться над социальной аутентификацией в твиттере, но сталкиваюсь со странной ошибкой !!

Вот что я делаю:

it("should redirect a user to profile page with data", done => {
    nock("https://api.twitter.com/")
      .filteringPath(() => "/")
      .persist()
      .post("/")
      .reply(302, undefined, {
        Location: `/api/v1/profile/${dummyUser.username}`
      })
      .log(console.log);
    chai
      .request(app)
      .get("/api/v1/auth/twitter")
      .end((err, res) => {
        expect(res.redirect).to.be.equals(true);
        expect(res.status).to.be.equal(302);
        expect(res.header.location).to.be.equals(
          `/api/v1/profile/${dummyUser.username}`
        );
        done();
      });

Но при попыткеподключиться к твиттеру Я получаю эту ошибку:

соответствие https://api.twitter.com:443/ POST https://api.twitter.com:443/: true Сообщение от auth Не удалось получить маркер запроса ===== {Ошибка: connect ECONNREFUSED 127.0.0.1:80 в TCPConnectWrap.afterConnect [as oncomplete] (net.js: 1117: 14) errno: 'ECONNREFUSED', код: 'ECONNREFUSED', системный вызов: 'connect',
адрес: '127.0.0.1 ', порт: 80} Ошибка: connect ECONNREFUSED 127.0.0.1:80

Я не знаю, откуда он, возможно, из времени жизни запроса.

Здесьмой обработчик для /auth/twitter and my callback

authRouters.get("/auth/twitter", passportTwitter.authenticate("twitter"));
authRouters.get(
  "/auth/twitter/callback",
  passportTwitter.authenticate("twitter", {
    failureRedirect: "/login",
    session: false
  }),
  (req, res) => {
    res.redirect(`/api/v1/profile/${req.user.username}`);
  }
);

и как выглядит мой authRouter:

import dotenv from "dotenv";
import passport from "passport";
import twitterStrategy from "passport-twitter";
import createUserFromSocial from "./createUserFromSocial";

dotenv.config();

const TwitterStrategy = twitterStrategy.Strategy;
passport.use(
  new TwitterStrategy(
    {
      consumerKey: process.env.TWITTER_CLIENT_ID,
      consumerSecret: process.env.TWITTER_CLIENT_SECRET,
      callbackURL: "http://localhost:3000/api/v1/auth/twitter/callback",
      passReqToCallback: true
    },
    async (request, accessToken, refreshToken, profile, done) => {
      const user = await createUserFromSocial(profile);
      return user
        ? done(null, user)
        : done(new Error("An error occurs , please try again later"));
    }
  )
);

export default passport;

Любая помощь о том, как исправить эту ошибку ??Есть ли лучший способ издеваться над социальной аутентификацией с твиттером Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...