Vous ne savez pas si @CraigKerstiens la réponse prend en compte que request.is_secure()
retourne toujours False
si derrière Heroku du reverse proxy et pas "fixe". Si je me souviens bien, ce sera la cause d'une boucle de redirection HTTP.
Si vous exécutez Django avec gunicorn, une autre façon de le faire est d'ajouter les éléments suivants à gunicorn de config
secure_scheme_headers = {
'X-FORWARDED-PROTO': 'https'
}
Courir avec quelque chose comme ceci dans votre Procfile
web: python manage.py run_gunicorn -b 0.0.0.0:$PORT -c config/gunicorn.conf
Par la mise en gunicorn de l' secure-scheme-header
, request.is_secure()
bien de retour True
sur les requêtes https. Voir Gunicorn Config.
Maintenant @CraigKerstiens le middleware de fonctionner correctement, y compris tous les appels à des request.is_secure()
dans votre application.
Remarque: Django a aussi le même paramètre de configuration d'appel SECURE_PROXY_SSL_HEADER
, mais dans le dev de la version.