liée: Rails 3 routings SSL Redirects de HTTPS à HTTP à HTTP. (malheureusement n'a pas fonctionné).
Dupliquer, mais la réponse n'a pas fonctionné pour moi: Configuration SSL sur Devise A> P> J'ai une application Web qui fonctionne bien pendant un moment, mais je dois ajouter SSL aux chemins d'accès à la connexion / Modifier. J'utilise le congé pour l'authentification. J'ai trouvé une entrée dans le Devise Wiki qui a rendu le processus assez simple, mais putain si je peux le faire fonctionner. La partie simple était ceci: p> et il y a environ 25 lignes de code dans cet essentiel: https://gist.github.com/1040964 p> J'ai obtenu cela assez bien, mais quand je vous sort, je reçois un 301 des sessions Supprimer une action qui m'envoie à obtenir. P> #devise routes
scope :protocol => 'https://', :constraints => { :protocol => 'https://' } do
devise_for :users, :controllers => { :registrations => :registrations }
devise_for :admins
end
3 Réponses :
Aucune réponse, alors voici ce que j'ai conclu:
Une fois que vous avez accès à un site via HTTPS, n'accumulez pas via HTTP jusqu'à ce que l'utilisateur ne s'inscrit (Attaque de pompesheep). Il y a beaucoup de choses sur le congé dans l'article lié ci-dessus qui n'en discute que d'avoir https sur la page de connexion / sortie. Mauvaise idée. p> li>
Tout ce dont vous avez vraiment besoin est-ce: p>
#in config/environments/production.rb config.to_prepare { Devise::SessionsController.force_ssl } config.to_prepare { Devise::RegistrationsController.force_ssl }
J'ai eu une tonne de problèmes entourant "After_Sign_in_Path" de Devise. Il s'avère que après_sign_out_path_for code> s'attend à ce que un chemin soit renvoyé - ce n'est pas un événement, il est demandé où l'utilisateur doit être dirigé. Donc je suis retourné
root_path: protocole => 'http: //' code> et cela s'en occuper. P> li>
ol> p>
Essayez de rendre votre application entière Utiliser https en ajoutant:
#in config/environments/production.rb config.force_ssl = true
Assurez-vous d'utiliser HTTPS dans tous vos liens de congise (cela évite la redirection FORCE_SSL).
dans vos routes.rb (appliqué uniquement dans l'environnement de production): P>
destroy_user_session_url # use _url instead of _path so the protocol is added!