ベローズコードは機能しますが、承認ヘッダーにPHPコードの空のトークン(Eg- 'Authorization:bearer')があると、node.jsアプリケーションがクラッシュします。私は "passport-azure-ad"ノードモジュールを使用しています。私はPost manとチェックして、トークンを検証しますが、リクエストがPHPのcurlリクエストから来たとき、アプリケーションはクラッシュします。この理由は、 "passport-azure-ad"ノードモジュールでhttpヘッダーが2回設定されているためです。私はこのエラーをキャッチできませんでした。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 スロー新しいError(。それらが送られた後、tはヘッダーを設定\ 'できます' '); ^
エラー:送信後にヘッダーを設定できません。 \ 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で有効または無効なトークンを渡すと完全に動作しています。私は "passport-azure-ad"の3.0.8バージョンを使用しています。私はPHPコードで質問を編集しました。 – Sudharshan