波纹管代码运行良好,但是当授权标头带有来自 php 代码的空令牌(例如-'Authorization: Bearer')时,node.js 应用程序崩溃。我正在使用“passport-azure-ad”节点模块。我检查了 Post man,它验证了令牌,但是当请求来自 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 throw new Error('Can\'t set headers after they are sent.'); ^
错误:发送后无法设置标头。在 \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 );
我该如何从我这边处理这个错误,谢谢。