Паспортная аутентификация Microsoft Azure Active Directory

Сильфонный код работает нормально, но когда заголовок авторизации идет с пустым токеном из php-кода (например, Authorization: bearer), приложение node.js завершается сбоем. Я использую модуль узла "passport-azure-ad". Я проверил с почтальоном, он проверяет токен, но когда запрос приходит из php curl, приложение вылетает. Причиной этого является то, что заголовок http устанавливается два раза в модуле узла "passport-azure-ad". Я не мог поймать эту ошибку.

router.get('/getUser', passport.authenticate('oauth-bearer', {
    session: false,
    tenantIdOrName: TENANT
}), function (req, token, done) {
    // Send response
});

Трассировка сбоев - _http_outgoing.js:356 выбросить новую ошибку ("Не удается установить заголовки после их отправки."); ^

Ошибка: невозможно установить заголовки после их отправки. в \node_modules\passport\lib\middleware\authenticate.js:156:13)

Код PHP = >

$headers = array ('Authorization: bearer ' . $Requestheader['id_token']);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ( $ch, CURLOPT_URL, 'http://serverhost/auth/getUser' );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $headers );
return curl_exec ( $ch );

Как я могу справиться с этой ошибкой со своей стороны, спасибо.

1 ответ

Node.js запускается в одном потоке, он вылетит, если ошибка не будет обработана. Вот очень полезная ветка об обработке исключений в Node.js:

Node.js Лучшая практика обработки исключений

Другие вопросы по тегам