Как извлечь другие области API из обратного вызова для паспорта? - PullRequest
3 голосов
/ 05 апреля 2019

Я хочу получить день рождения пользователя, использующего Passport.js со стратегией passport-google-oauth20. Где я могу получить ответ об этой дополнительной области и как извлечь эту информацию?

У меня есть успех при извлечении профиля и электронной почты от пользователя, но все остальные попытки, которые я пробую, не могут найти, куда они возвращаются. Я использую некоторые области из Google Identity Platform (точнее, People API, который я уже активировал из Google Cloud Platform), и они не отображаются в обратном вызове стратегии Passport (только профиль и электронная почта).

Здесь я устанавливаю паспорт и проверяю, что возвращается

passport.use(
  new GoogleStrategy(config, (accessToken, refreshToken, profile, done) => {
    console.log(profile);
    // outputs:
    // id: ...
    // displayName: ...
    // name: { ... }
    // emails: [ { ... } ]
    // photos: [ { ... } ]
    // _raw: ...
    // _json: ... (above info plus profile link and locale)

    ...
  })
);

Внутри своих маршрутов я объявляю границы и перенаправляю пользователя

router.get('/auth/google/', passport.authenticate('google', {
    scope: ['https://www.googleapis.com/auth/user.birthday.read', 'profile', 'email']
}));

router.get('/auth/google/redirect/', passport.authenticate('google'), (req, res) => {
  res.redirect('http://localhost:2000/profile/' + req.user.id)
})

Мои версии узлов и npm в данный момент:

node --version
v8.12.0

npm --version
6.9.0

И мои версии пакета следующие:

...
"express": "^4.16.4",
"passport": "^0.4.0",
"passport-google-oauth20": "^2.0.0",
...

Из того, что я понимаю, у меня должна быть возможность получать больше информации, кроме профиля, электронной почты и openid с помощью Passport, и я понимаю, что мне нужно получить API области, которую я хочу активировать. Что я не понимаю, так это как получить информацию из этого API в функции обратного вызова или как вообще получить эту информацию.

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