2017-10-17 9 views
1

Je suis dans le développement et l'utilisation de la html5 geolocation sur mon rails 5 application:Rails: changement localhost: 3000 à https: //

function getLocation() { 
    if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(setGeoCookie); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 

function setGeoCookie(position) { 
    var cookie_val = position.coords.latitude + "|" + position.coords.longitude; 
    document.cookie = "lat_lng=" + escape(cookie_val); 
} 

il fonctionne très bien avec firefox et tous les navigateurs sauf pour safari. Avec safari le allow pop up n'apparaît pas. J'ai fait quelques recherches et trouvé ... que Safari (contrairement à Chrome et Firefox) ne permet pas l'accès à la géolocalisation sur le protocole HTTP - seulement HTTPS. Même pour localhost.

La solution consiste à utiliser un autre navigateur en développement ou à utiliser Rails via HTTPS. Quelqu'un peut-il me donner des indications sur la façon de servir Rails sur HTTPS en cours de développement?

+0

Il me semble que l'utilisation d'un autre navigateur est l'option la plus simple. –

+0

Oui, je suis d'accord @Sergio Tulentsev! La seule question est, ça va fonctionner avec Safari quand je le déploie ?? Depuis que je ne peux pas le tester maintenant! – Theopap

+0

Cela dépend de votre système d'exploitation et de votre configuration. Surtout ce que les rails serveur que vous utilisez. Fondamentalement, vous devez créer un certificat auto-signé (PEM) et lui faire confiance dans le système d'exploitation. https://gist.github.com/tadast/9932075 – max

Répondre

2

Le moyen le plus simple de servir Rails sur https sera d'utiliser ngrok. Il fournit juste un tunnel sécurisé à localhost. Extrêmement facile à utiliser

0

Vous pouvez faire votre application Rails pour exécuter le protocole HTTPS en ajoutant la ligne ci-dessous dans application.rb

config.force_ssl = true 

Ou comme suggéré Nwocha vous pouvez aussi bien utiliser ngrok.