Php Microsoft Azure Active Directory Passport身份验证
下面的代码运行正常,但当授权头带有来自php代码的空令牌(例如-‘authorization:bearer’)时,node.js应用程序就会崩溃。我正在使用“passport azure ad”节点模块。我与PostMan进行了检查,验证令牌是必要的,但是当请求来自php curl请求时,应用程序就会崩溃。原因是,http头在“passport azure ad”节点模块中设置了两次。我没能抓住这个错误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('
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代码编辑了这个问题。是的,我们可以在全局范围内捕获错误,但我正在寻找在准确位置捕获错误的方法。我正在尝试使用“但是失败了”重现问题。无论是否提供令牌,代码示例都不会崩溃。根据错误消息,应用程序似乎在发送响应后设置了头。并参考相同的错误消息。是的,我们可以全局捕获错误,但我正在寻找在确切位置捕获错误。我正在尝试使用“但是失败”重现问题。无论是否提供令牌,代码示例都不会崩溃。根据错误消息,应用程序似乎在发送响应后设置了头。并参考相同的错误消息。