Как реализовать аутентификацию Passport JS Oauth (facebook / Google) в Postman? Я использую NodeJS с PassportJs - PullRequest
0 голосов
/ 20 июня 2020

Я не могу получить доступ к req.user, когда я отправляю get / post или любой запрос от Postman. Я хочу создать API с помощью Postman. Он отлично работает в браузере. У меня 2 маршрута. Первый маршрут попадает в Facebook, а второй - для обратного вызова.

router.get("/facebook", passport.authenticate("facebook"));
router.get(
  "/facebook/callback",
  passport.authenticate("facebook", {
    successRedirect: "/api/auth/current",
    failureRedirect: "/api/auth/facebook",
  })
);

Текущий маршрут просто отправляет res.send(req.user)

Это мой сервер. js

const cookieSession = require("cookie-session");
const bodyParser = require("body-parser");
const passport = require("passport");
const cors = require("cors");

const { mongoose } = require("./db/mongoose");
const keys = require("./config/keys");
const api = require("./api/index");

const app = express();

// bodyParser middleware
app.use(bodyParser.json());
app.use(
  bodyParser.urlencoded({
    extended: true,
  })
);

// Cookie session
app.use(
  cookieSession({
    maxAge: 30 * 24 * 60 * 60 * 1000,
    keys: [keys.cookieKey],
  })
);

// passport initialization
app.use(passport.initialize());
app.use(passport.session());
require("./utils/passport");

//Cors
app.use(cors());

//API route

app.use("/api/", api);
const PORT = process.env.PORT || 3000;

app.listen(PORT, () => {
  console.log(`Server is Running on ${PORT}`);
});

Я использую password.serialize и Passport.desearlize для доступа к идентификатору из Cook ie

passport.serializeUser((user, done) => {
  done(null, user.id);
});

passport.deserializeUser((id, done) => {
  User.findById(id).then((user) => {
    done(null, user);
  });
});

Что мне делать, чтобы получить req.user при создании API с помощью Postman. Пожалуйста, помогите, я новичок ie

...