Недавно, когда я работал над социальной аутентификацией для моего веб-приложения Django, мне требовалось безопасное соединение для входа в facebook даже с localhost. С марта 2018 года вход в систему Facebook принудительно использует HTTPS в вашем приложении, даже если это тестовое приложение. Мне пришлось создать локально доверенный сертификат.
Используемые инструменты:
- mkcert: https://github.com/FiloSottile/mkcert. Для создания сертификатов
2. django-sslserver: помогает нам запустить сервер с сертификатом, который мы должны создать.
- Мкцерт
- После установки mkcert перейдите в свой рабочий каталог с помощью cmd (запуск от имени администратора) и выполните эту команду:
mkcert -install
Вы должны это увидеть
Использование локального CA в «C: \ Users \ {ваше имя пользователя} \ AppData \ Local \ mkcert» ✨
Локальный CA уже установлен в системном хранилище доверенных сертификатов! 👍
- теперь создайте сертификаты с помощью этой команды:
mkcert -cert-file cert.pem -key-file key.pem 0.0.0.0 localhost 127.0.0.1 :: 1
Замените 0.0.0.0, localhost, 127.0.0.1 доменами, которые вы будете запускать локально.
Файлы cert.pem и key.pem будут созданы в вашем текущем рабочем каталоге. вы можете заменить их любыми именами, которые захотите.
но поскольку мы будем запускать их в Django, скопируйте их в ту же папку, что и manage.py
2. Django-sslserver
активируйте свою виртуальную среду
pip install django-sslserver
обновите свой settings.py, добавив «sslserver» в INSTALLED_APPS
Теперь при запуске сервера: python manage.py runsslserver - сертификат cert.pem - ключ key.pem
Вернитесь в facebook и убедитесь, что вы добавили https: // localhost: 8000 / и https://127.0.0.1:8000/ в качестве доменов приложений.
и то же самое для URL-адреса сайта под сайтом.
добавьте логин facebook в качестве продукта в свое приложение, включите вход OAuth встроенного браузера.
а также, поскольку для URI перенаправления принудительно используется строгий режим, добавьте действительные URI перенаправления oauth:
Если вы используете django-allauth в качестве пакета социальной аутентификации, добавьте следующее:
Https: // localhost: 8000 / accounts / facebook / login / callback