Паспорт facebook токен Oauth2 выдает внутренние ошибки сервера, когда токен исправен, но работает нормально, если токен неверен - PullRequest
1 голос
/ 15 марта 2019

Что мне здесь не хватает?Я просмотрел все темы и некоторое время гуглил:

  • Внесен в белый список IP-адреса моей машины в соответствии с дополнительными настройками приложений.
  • Дважды проверил токен и, когда он истекЯ вижу эту ошибку на консоли.
  • Дважды проверил клиента + секрет + происхождение в приложении
  • Попробовал что-то с помощью маркера Google oauth, и я получил "несанкционированный", как и предполагалось.

Но когда все хорошо, и я отправляю запрос с этим хорошим токеном либо от Почтальона, либо от моего внешнего интерфейса, я получаю Внутреннюю ошибку сервера, сообщающую, что пользователь не определен в этой строке.Чего мне не хватает?

Код маршрута:

app.get(
  '/user',
  passport.authenticate('facebook-token', { session: false }),
  function(req, res) {
    res.send('SUCCESS');
  }
);

Весь другой код без импорта:

app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
  new FacebookTokenStrategy(
    {
      clientID: config.get('facebook.clientID'),
      clientSecret: config.get('facebook.clientSecret')
    },
    function(accessToken, refreshToken, profile, done) {
      User.findOrCreate({ facebookId: profile.id }, function(error, user) {
        return done(error, user);
      });
    }
  )
);

, и я импортирую пакет npm точно так же, как вдокументы:

const FacebookTokenStrategy = require('passport-facebook-token');

У меня нет идей по этому вопросу.

1 Ответ

1 голос
/ 15 марта 2019
app.use(cors());
app.use(express.json());
app.use(helmet());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(passport.initialize());
passport.use(
  new FacebookTokenStrategy(
    {
      clientID: config.get('facebook.clientID'),
      clientSecret: config.get('facebook.clientSecret')
    },
    function(accessToken, refreshToken, profile, done) {
      return done(null, profile);
    }
  )
);

Попробуйте это

...