[résolu] Authentification https avec API Géoportail

Authentification https avec API Géoportail [résolu] - Javascript/Node.js - Programmation

Marsh Posté le 23-05-2019 à 13:48:04    

Bonjour,Dans une appli web, j'affiche une google map dont la couche de données provient de Géoportail. Pas de souci, j'ai une clé pour l'API de Google map et une autre pour l'API de Géoportail. Problème : quand j'utilise cette clé d'API Géoportail dans l'appli, j'ai une erreur 401 (accès non autorisé). Effectivement, si je prend l'une des urls appelées pour afficher les tuiles (j'utilise le service wmts) et que je la mets dans la barre d'adresse de mon navigateur, il me demande une authentification http/https. Si je rentre le login/mdp, la tuile demandée s'affiche. Quand je retourne dans mon appli web, les données se charge aussi (mon navigateur a dû conserver l'authentification a priori).Question : comment puis-je faire pour passer l'authentification http quand j'appelle la couche Géoportail depuis ma Google map :??:
J'ai tenté en début de script une authentification, j'ai bien un code retour 200 mais après, l'authentification n'est pas conservée pour les requêtes de ma Google map :(

Code :
  1. function authenticateUser(user, password)
  2.         {
  3.             var token = user + ":" + password;
  4.             var hash = btoa(token);
  5.  
  6.             return "Basic " + hash;
  7.         }
  8.  
  9.         function CallWebAPI(url) {
  10.             // New XMLHTTPRequest
  11.             var request = new XMLHttpRequest();
  12.             request.open("GET", url, false);
  13.             request.setRequestHeader("User-Agent", window.navigator.userAgent);
  14.             request.setRequestHeader("Authorization", authenticateUser(userName, passWord));
  15.             console.log(window.navigator.userAgent);
  16.             request.send();
  17.             console.log(request.status);
  18.         }
  19.         CallWebAPI('https://wxs.ign.fr/ma_cle/geoportail/wmts?LAYER=GEOGRAPHICALGRIDSYSTEMS.MAPS.SCAN-OACI&FORMAT=image/jpeg&SERVICE=WMTS&VERSION=1.0.0&REQUEST=GetTile&STYLE=normal&TILEMATRIXSET=PM&TILEMATRIX=6&TILEROW=22&TILECOL=32')


A noter que j'ai tenté une authentification https via PHP et curl, sans plus de succès :/
Merci par avance pour votre aide. :jap:


Message édité par rufo le 23-05-2019 à 14:26:24

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 23-05-2019 à 13:48:04   

Reply

Marsh Posté le 23-05-2019 à 14:26:07    

C'est bon, j'ai trouvé la solution.  

Code :
  1. new google.maps.ImageMapType({        
  2.    getTileUrl: function(tileCoord, zoom) {
  3.        var url = "https://username:pdw@wxs.ign.fr/ma_cle/geoportail/wmts?LAYER=...";
  4.        return url;
  5.    },
  6.    ....
  7. });

 
J'avais eu cette idée mais ça n'avais pas marché à cause d'un caractère # dans le username. En le passant en %23, ça fonctionne.


Message édité par rufo le 23-05-2019 à 14:26:57

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed