2016-08-16 1 views
2

J'ai un peu de mal à obtenir un microservice Foxx dans ArangoDB 3.0.4 avec l'authentification à exécuter. Le microservice Foxx utilise le middleware de session pour gérer l'authentification. Il le fait en stockant un JWT dans l'en-tête X-Session-Id (ceci ne devrait pas être spécifique à l'utilisation de JWT).ArangoDB: Le middleware de session Foxx est en conflit avec CORS

Cela fonctionne très bien tant que la requête du client n'inclut pas un en-tête Origin. Mais dès que cela se produit (j'utilise Cordova et le côté $ client de AngularJS, donc je ne peux pas l'empêcher), ArangoDB définit tous les en-têtes Access-Control- * (si je les mets manuellement, ils sont surchargés) . En principe, cela est correct, mais l'en-tête Access-Control-Expose-Headers ne contient pas X-Session-Id. Cela signifie que je ne peux pas récupérer le JWT du côté client.

Comment résoudre ce problème? J'ai pensé à ajouter le JWT à la charge utile de chaque réponse, mais cela ne me semble pas très agréable. Est-il possible de configurer ArangoDB pour inclure X-Session-Id dans l'en-tête Access-Control-Expose-Headers?

Merci d'avance pour toute aide à ce sujet.

Répondre