貝婁代碼運行良好,但是當授權頭帶有來自PHP代碼的空令牌(例如:'Authorization:bearer')時,node.js應用程序會崩潰。我正在使用「passport-azure-ad」節點模塊。我檢查郵政人,它是驗證令牌,但是當請求來自PHP捲曲請求,應用程序崩潰。其原因是,http頭在「passport-azure-ad」節點模塊中設置了兩次。我無法捕捉到這個錯誤。Microsoft Azure Active Directory Passport身份驗證
router.get('/getUser', passport.authenticate('oauth-bearer', {
session: false,
tenantIdOrName: TENANT
}), function (req, token, done) {
// Send response
});
崩潰的錯誤跟蹤 - _http_outgoing.js:356 拋出新的錯誤( '可以\' 噸設置頭髮送之後「。); ^
錯誤:發送後無法設置標頭。 在\ node_modules \護照\ LIB \中間件\ 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);
我該如何處理此錯誤從我的身邊,謝謝。
難道它的工作,當你從PHP發送驗證令牌,而不是空的令牌?你正在開發什麼版本的「passport-azure-ad」?什麼是確切的捲曲請求代碼? –
@FeiXue,感謝您的回覆,是的,當我通過php curl傳遞有效或無效的標記時,它工作正常。我正在使用3.0.8版本的「passport-azure-ad」。我用php代碼編輯了問題。 – Sudharshan