Как вернуть пользователя обратно на страницу, с которой он пришел после входа в Nuxt через Passport? - PullRequest
0 голосов
/ 21 февраля 2020

Я использую Nuxt. js с Passport и connect-redis для управления сеансами. Когда пользователь входит в систему, я хочу вернуть его на страницу, с которой он пришел после входа в систему. Я добавил это промежуточное ПО, но, похоже, оно не работает

app.use((req, res, next) => {
  // After successful login, redirect back to the intended page
  if (!req.user
    && req.path !== '/login'
    && req.path !== '/signup'
    && !req.path.match(/^\/auth/)
    && !req.path.match(/\./)) {
    req.session.returnTo = req.originalUrl;
  } else if (req.user
    && (req.path === '/account' || req.path.match(/^\/api/))) {
    req.session.returnTo = req.originalUrl;
  }
  next();
});

app.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email', 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/spreadsheets.readonly'], accessType: 'offline', prompt: 'consent' }));
app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/login' }), (req, res) => {
  res.redirect(req.session.returnTo || '/');
});

req.session.returnTo кажется неопределенным при использовании вышеуказанного промежуточного программного обеспечения

...