Невозможно попасть на страницу входа в Google с помощью паспорта и стратегии Google oauth. - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь использовать Passport, чтобы пользователи могли войти в веб-приложение с помощью своей учетной записи Google, но я не могу заставить свой маршрут входа в систему / auth / google даже перенаправить наСтраница входа в Google.Мои другие маршруты работают, и я не получаю никаких ошибок в своей консоли, но когда я захожу на localhost: 5000 / auth / google, страница просто зависает и в итоге выдает ошибку «localhost отказано соединиться» (я предполагаю, что послевремя истекло).

Есть идеи, что может происходить?Я использовал в основном точно такой же код в другом приложении - я знаю, что большую часть леса не настроил для полного входа в систему, но я думаю, что на этом этапе должна быть хотя бы загрузка страницы входа в систему Google.

index.js

import express from 'express';
import cors from 'cors';
import bodyParser from 'body-parser';
import passport from 'passport';
const GoogleStrategy = require('passport-google-oauth20').Strategy;

// import database from './server/src/models';
import userRoutes from './server/routes/UserRoutes';

const PORT = process.env.PORT | 5000;
const app = express();

passport.use(
  new GoogleStrategy(
    {
      clientID: process.env.googleClientID,
      clientSecret: process.env.googleClientSecret,
      callbackURL: '/auth/google/callback'
    },
    (accessToken, refreshToken, profile, cb) => {
      console.log(accessToken);
    }
  )
);

app.use(cors());
app.use(bodyParser.json());
app.use(passport.initialize());
app.use(passport.session());

app.get('/', (req, res) => {
  res.send('Hello world!');
});

app.get('/auth/google', (req, res) => {
  passport.authenticate('google', {
    scope: ['profile', 'email']
  });
});

app.use('/users', userRoutes);

app.listen(PORT, () => {
  console.log(`App up on port ${PORT}`);
});

export default app;

вот ссылка на полный репо: https://github.com/olliebeannn/chatterpod

1 Ответ

0 голосов
/ 05 июля 2019

Разобрался - действительно глупая ошибка. Это:

app.get('/auth/google', (req, res) => {
  passport.authenticate('google', {
    scope: ['profile', 'email']
  });
});

должно быть:

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