无法使用护照和谷歌oauth策略访问谷歌登录页面

Oll*_*ani 1 node.js express google-oauth passport.js passport-google-oauth2

我正在尝试使用 Passport 让用户能够使用他们的 Google 帐户登录网络应用程序,但我似乎无法获取我的登录路由 /auth/google,甚至无法重定向到 Google 登录页面。我的其他路线工作正常,我的控制台中没有收到任何错误,但是当我转到 localhost:5000/auth/google 时,页面只是挂起并最终给出“localhost 拒绝连接”错误(我假设之后已超时)。

知道会发生什么吗?我已经在另一个应用程序中成功地使用了基本上完全相同的代码 - 我知道我还没有设置大部分用于完全登录的脚手架,但我认为此时至少应该加载谷歌登录页面。

索引.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;
Run Code Online (Sandbox Code Playgroud)

这是完整存储库的链接: https://github.com/olliebeannn/chatterpod

Oll*_*ani 15

想通了——真是愚蠢的错误。这:

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

应该:

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