2013-12-01 2 views
1

Я использую паспорт с приложением NodeJS/Express для аутентификации пользователей, и он отлично работает. Тем не менее, я хочу заблокировать некоторые развертывания с базовой аутентификацией (аналогично базовому HTTP-аутентификации .htaccess на Apache), например промежуточному серверу.Как использовать экспресс-базовый auth вместе с паспортом

Чтобы быть более понятным, у меня есть среда разработки, которая запускает все локально. У меня есть тестовая среда, которая начинается с каждой сборки. У меня есть промежуточная среда для использования с тестированием черного ящика и, наконец, производственная среда. Я хотел бы применить базовый auth к промежуточной среде, чтобы компилятор user/pass был необходим для достижения этого. Все остальные функции должны быть доступны после прохождения основного auth.

Я пробовал встроенный в ExpressAuth Express, который работает хорошо, за исключением того, что он заполняет req.user, что и использует Passport. Таким образом, мои сеансы получают загрязненный таким образом, чтобы войти в систему и с Passport больше не работает правильно, так как он считает, что пользователь уже вошел в

Вот фрагмент, где я использую BasicAuth:.

// Basic auth (for staging env) 
// Note: I'm checking for my dev env just to test this 
if (process.env.NODE_ENV == 'development') { 
    app.use(express.basicAuth('dev', 'abc123')); 
} 

Есть ли другой метод, который я могу использовать вместо basicAuth, или другим способом, которым я могу использовать basicAuth, чтобы это произошло?

ответ

2

Может быть, вы можете сделать это:

if (process.env.NODE_ENV == 'development') { 
    app.use(express.basicAuth('dev', 'abc123')); 
    app.use(function(req, res, next) { 
    req.basicAuthUser = req.user; 
    req.user = null; 
    next(); 
    }); 
} 

Таким образом, когда пользователь получил проверку подлинности с базовой аутентификацией, req.user хранится где-то (если это необходимо), а затем возвращается к null, чтобы не перепутать паспорт.

+0

BOOM! Похоже, это и получилось. Благодаря! – CrankNPlank

Смежные вопросы