Passport.js / Express.js连接被拒绝

时间:2017-04-23 15:33:40

标签: javascript node.js express google-oauth passport.js

当我在app.js中拥有所有代码时,使用Google进行身份验证工作正常,但我尝试在自己的文件中分解身份验证路由,现在我得到了connection refused

//authRouter.js
const express = require("express");
const authRouter = express.Router();
const SECRETS = require("../config/secrets");
const GoogleStrategy = require("passport-google-oauth").OAuth2Strategy;
const passport = require("passport");
passport.use(new GoogleStrategy(SECRETS.google,
  (accessToken, refreshToken, profile, done) => {
    return done(null, profile);
  })
);

authRouter.get("/google", passport.authenticate('google', { scope: ['openid email profile'] }));
authRouter.get("/google/callback",
  passport.authenticate("google",
  {
    failureRedirect: "/login",
    successRedirect: "/"
  },
  (req, res) => {
    res.render("hello world"); //successful auth, redirect home, but res is undefined
  })
)
module.exports = authRouter;

//app.js
var authConfig = require('./config/secrets'),
  express = require('express'),
  passport = require('passport'),
  TwitterStrategy = require("passport-google-oauth").OAuth2Strategy,
  SECRETS = require("./config/secrets"),
  authRoutes = require("./routes/authRoutes");

passport.serializeUser((user, done) => {

  done(null, user);
});

passport.deserializeUser((obj, done) => {
  done(null, obj);
});
//setup for previously working Google auth
// passport.use(new GoogleStrategy(

//   authConfig.google,

//   (accessToken, refreshToken, profile, done) => {
//     return done(null, profile);
//   }
// ));


var app = express();
app.set('view engine', 'hbs');

var logger = require('morgan');
var cookieParser = require('cookie-parser');
var session = require('express-session');

app.use(logger('dev'));
app.use(cookieParser());
app.use(session({
  secret: 'secret',
  resave: false,
  saveUninitialized: false
}));

app.use(passport.initialize());
app.use(passport.session());

app.use(express.static(__dirname + '/public'));


// Application routes

app.get('/', (req, res) => {
  res.render('index', {
    user: req.user
  });
});

app.get('/login', (req, res) => {
  res.render('login', {
    user: req.user
  });
});

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

// app.get('/auth/google/callback',
//   passport.authenticate('google', {
//     failureRedirect: '/login'
//   }),
//   (req, res) => {
//     // Authenticated successfully
//     res.redirect('/');
//   });

//**registering authentication routes
app.use("/auth", authRoutes);
app.get('/account', ensureAuthenticated, (req, res) => {
  res.render('account', {
    user: req.user
  });
});

app.get('/logout', (req, res) => {
  req.logout();
  res.redirect('/');
});

app.listen(process.env.PORT || 3000, () => {
  console.log("Listening...");
});


function ensureAuthenticated(req, res, next) {
  if (req.isAuthenticated()) {
    return next();
  }
  res.redirect('/login');
}

当我在浏览器中访问应用程序时,我登录Google,我拒绝连接。我知道凭据是正确的,而且很可能是我缺少的快速设置。有什么想法吗?提前致谢。

0 个答案:

没有答案