Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Microsoft Azure Active Directory Passport身份验证_Php_Node.js_Azure_Azure Active Directory_Passport Azure Ad - Fatal编程技术网

Php Microsoft Azure Active Directory Passport身份验证

Php Microsoft Azure Active Directory Passport身份验证,php,node.js,azure,azure-active-directory,passport-azure-ad,Php,Node.js,Azure,Azure Active Directory,Passport Azure Ad,下面的代码运行正常,但当授权头带有来自php代码的空令牌(例如-‘authorization:bearer’)时,node.js应用程序就会崩溃。我正在使用“passport azure ad”节点模块。我与PostMan进行了检查,验证令牌是必要的,但是当请求来自php curl请求时,应用程序就会崩溃。原因是,http头在“passport azure ad”节点模块中设置了两次。我没能抓住这个错误 router.get('/getUser', passport.authenticate('

下面的代码运行正常,但当授权头带有来自php代码的空令牌(例如-‘authorization:bearer’)时,node.js应用程序就会崩溃。我正在使用“passport azure ad”节点模块。我与PostMan进行了检查,验证令牌是必要的,但是当请求来自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\u 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 );

我如何从我的角度处理此错误,谢谢。

Node.js正在运行,如果不处理错误,它将崩溃。下面是一个非常有用的关于Node.js中异常处理的线程:


Node.js正在运行,如果不处理错误,它将崩溃。下面是一个非常有用的关于Node.js中异常处理的线程:


当您从PHP发送验证令牌而不是空令牌时,它是否起作用?您开发的passport azure ad的版本是什么?确切的curl请求代码是什么?@FeiXue,谢谢您的回复,是的,当我通过php curl传递有效或无效令牌时,它工作得非常好。我正在使用3.0.8版本的“passport azure广告”。我用php代码编辑了这个问题。当您从php发送验证令牌而不是空令牌时,它能工作吗?您开发的passport azure ad的版本是什么?确切的curl请求代码是什么?@FeiXue,谢谢您的回复,是的,当我通过php curl传递有效或无效令牌时,它工作得非常好。我正在使用3.0.8版本的“passport azure广告”。我用php代码编辑了这个问题。是的,我们可以在全局范围内捕获错误,但我正在寻找在准确位置捕获错误的方法。我正在尝试使用“但是失败了”重现问题。无论是否提供令牌,代码示例都不会崩溃。根据错误消息,应用程序似乎在发送响应后设置了头。并参考相同的错误消息。是的,我们可以全局捕获错误,但我正在寻找在确切位置捕获错误。我正在尝试使用“但是失败”重现问题。无论是否提供令牌,代码示例都不会崩溃。根据错误消息,应用程序似乎在发送响应后设置了头。并参考相同的错误消息。