Не входите, подтвердите метод passport-facebook - PullRequest
0 голосов
/ 24 марта 2020

Я не могу ввести метод проверки паспорта при авторизации на Facebook. Мой console.log там не отображается. Я посмотрел в Интернете, и это не мой DNS, и мой профиль приложения правильно настроен с API Facebook (API получает реквизиты). Моя локальная стратегия работает, но я не могу найти способы заставить работать Facebook. Я проверил запрос с почтальоном и получил ответ 200 с файлом html для входа в Facebook. Я использовал свой фейсбук access_token с почтовым запросом для тестирования.

passport.config.ts

import { PassportStatic } from 'passport';
import { Application } from 'express';
// Strategies imports
import local from './strategies/local';
import facebook from './strategies/facebook';


export default function (app: Application, passport: PassportStatic) {
  // Enable strategies
  passport.use(local);


  passport.use('facebook', facebook);
  // Add passport to express
  app.enable('trust proxy');
  app.use(passport.initialize());
}

facebook.ts

import { Strategy as Facebook, Profile } from "passport-facebook";
import { getManager } from "typeorm";
import { User } from "../../db/entity/User";

export default new Facebook(
    {
        clientID: "myId",
        clientSecret: "myClientSecret",
        callbackURL: "/v1/auth/facebook/callback",
        profileFields: ["id", "first_name", "last_name", "email"]
    },
    async function (accessToken: string, refreshToken: string, profile: Profile, done: Function) {
        console.log('foo');
        let manager = getManager();
        let user = await manager.findOne(User, { where: { facebookId: profile.id } });

        if (!user) {
            user = User.createFromFacebook(profile);
            user = await manager.save(user);
            return done(null, user);
        }
        return done(null, user);
    }
);

auth.ts (маршрутизация)

router.post('/facebook/callback', passport.authenticate('facebook', controller.redirectAfterOAuth));
router.post("/localFacebook", passport.authenticate('facebook'));

app.ts

app.use(compression());
app.use(bodyParser.json( { limit: "50MB" } ));
app.use(bodyParser.urlencoded({ extended: true }));

// Passport configuration
configurePassport(app, passport);
...