Паспорт - JWT со стратегией Google - обработка из внешнего интерфейса - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь реализовать стратегию Google с Passport (Node.js) для аутентификации пользователя, но по какой-то причине мне нужно сделать это с JWT вместо использования функций сериализации, которые полезны только тогда, когда используется cook ie.

Я запускаю аутентификацию с помощью:

  <a href={process.env.REACT_APP_API_URL + '/google/auth'}>Sign in with Google</a>

Затем на бэкэнде (node.js) У меня есть конфиг:

passport.use(
  new GoogleStrategy(
    {
      clientID: process.env.GOOGLE_CLIENT_ID,
      clientSecret: process.env.GOOCLE_CLIENT_SECRET,
      callbackURL: '/google/auth/callback',
      proxy: true,
    },
    async (accessToken, refreshToken, profile, done) => {    
      // save user in db
      await done(null, userData);

    }
  )
);

И маршруты:

app.get('/google/auth', passport.authenticate('google', {
  scope: ['profile', 'email'],
  prompt: 'select_account',
}));

app.get(
  '/google/auth/callback',
  passport.authenticate('google', { session: false }),
  (req, res) => {
    // create JWT and send it to the client

    res.send({ token });
  }
);

По моему маршруту обратного вызова в браузере я вижу, что токен есть (это localhost:5000/google/auth/callback?code=123412341234). Я не могу понять, как я могу использовать его на стороне клиента, ie. Как я могу извлечь его из этого маршрута и сохранить его в localStorage, чтобы использовать его в следующих запросах.

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