Паспортная аутентификация 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 Лучшая практика обработки исключений

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]