Bellow代码运行正常,但是当授权标头带有来自php代码的空标记(例如''授权:承载')时,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 抛出新的错误('不能在发送后设置标题。'); ^
错误:发送后无法设置标头。 at \ 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 );
如何从我这边处理这个错误,谢谢。