экспресс-проверка паспорта, если пользователь аутентифицирован

Это очень зависит от того, насколько вы надежны в своем кэшировании. Например, прокси-сервер squid (и, возможно, другие) по умолчанию не кэширует URL-адреса, обслуживаемые с помощью запроса, по крайней мере, это было, когда эта статья была написана. Если вы не возражаете против определенных случаев использования, которые вызывают ненужные промахи в кеше, переходите к параметрам запроса. Но очень очень легко настроить схему кэширования на основе имен файлов, которая позволяет избежать этой проблемы.

0
задан dan brown 13 July 2018 в 10:28
поделиться

1 ответ

Добавляя следующие строки в app.js, я работал:

app.use(require('express-session')({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: false
}));

Таким образом, паспорт настроен следующим образом:

var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var passport = require('passport');
var mongoose = require('mongoose');
var User = require('./models/user')
const LocalStrategy = require('passport-local').Strategy;

Используя их:

app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());

app.use(require('express-session')({
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: false
}));

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(express.static(path.join(__dirname, 'public')));

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

// used to serialize the user for the session
passport.serializeUser(function(user, done) {
  done(null, user.id); 
 // 
});

// used to deserialize the user
passport.deserializeUser(function(id, done) {
  User.findById(id, function(err, user) {
      done(err, user);
  });
});
0
ответ дан dan brown 17 August 2018 в 13:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: