Le code ci-dessous fonctionne correctement, mais lorsque l'en-tête d'autorisation est fourni avec un jeton vide du code php (par exemple, 'Authorization: bearer'), l'application node.js se bloque. J'utilise le module de noeud "passport-azure-ad". J'ai vérifié avec Post Man, ça valide le jeton, mais quand la requête vient de la demande de php curl, l'application se bloque. La raison pour cela, l'en-tête http défini deux fois dans le module de noeud "passe-azure-ad". Je n'ai pas pu attraper cette erreur.Authentification passeport Microsoft Azure Active Directory
router.get('/getUser', passport.authenticate('oauth-bearer', {
session: false,
tenantIdOrName: TENANT
}), function (req, token, done) {
// Send response
});
trace d'erreur Crash - _http_outgoing.js: 356 throw new Error ('Can \' t mis en-têtes après leur envoi.); ^
Erreur: Impossible de définir les en-têtes après leur envoi. à \ node_modules \ passeport \ lib \ middleware \ authenticate.js: 156: 13)
code 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);
Comment puis-je gérer cette erreur de mon côté, Je vous remercie.
Est-ce que ça marche quand vous envoyez le jeton validate au lieu de jeton vide de PHP? Et quelle est la version de 'passport-azure-ad' que vous développiez? Quel est le code exact de demande de curl? –
@FeiXue, Merci pour votre réponse, Oui, ça fonctionne parfaitement lorsque je passe le jeton valide ou invalide à travers php curl. J'utilise la version 3.0.8 de "passport-azure-ad". J'ai édité la question avec le code de php. – Sudharshan