Как в node js используя passport.js и express внести изменения в http заголовки?

У меня в апи авторизация происходит при обращении по адресу /oauth/token
app.use('/oauth/token', oauth2.token);
где
oauth2.token = [
	passport.authenticate(['basic', 'oauth2-client-password'], { session: false }),
	aserver.token(),
	aserver.errorHandler()
];


Но таким образом у меня нет доступа к заголовкам, мне нужно их поправить для cors.
В других методах это так, здесь есть доступ к заголовкам через req и res:
app.get('/api/someMethod', function (req, res) 
{
	sendCors(res, req);
	...
});

Соответственно метод авторизации нужно привести к такому, чтобы я мог иметь доступ к заголовкам. Но я вообще не понимаю как вот этот use переделать в post или get, чтобы авторизация работала.
Пробовал так:
app.use('/oauth/token', function (req, res) 
{
	sendCors(res, req);
	oauth2.token[0]();
	oauth2.token[1]();
	oauth2.token[2]();
});

И не работает. Как правильно сделать?
  • Вопрос задан
  • 281 просмотр
Пригласить эксперта
Ответы на вопрос 1
Ahen
@Ahen
Универсальный дилетант
Решается установкой кастомного колбека:
router.route('/login/')

    .post(function(req, res, next){

        passport.authenticate('digest', function(err, user, info){

            if(err) return console.log(err);

            if(!user){
                res.set('WWW-Authenticate', 'x'+info);
                return res.send(401);
            }

            req.login(user, function(err){
                if(err) return console.log(err);
                res.redirect('/admin/');
            });
        })(req, res, next);
    });


Источник
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект