Хорошо, я не уверен, что случилось с этими ответами, но я дам вам знать, что сработало для меня, как посоветовал старший разработчик на моей работе. Я работаю в Ruby on Rails и использую код JavaScript Facebook для получения токенов доступа.
Проблема: для аутентификации Facebook берет URL-адрес из вашей адресной строки и сравнивает его с тем, что у них есть в файле. Они не позволяют вам использовать localhost:3000по какой-либо причине. Тем не менее, вы можете использовать полностью выдуманное доменное имя, например yoursite.dev, запустив локальный сервер и указав yoursite.devна него 127.0.0.1:3000или там, где указывал ваш localhost.
Шаг 1. Установите или обновите Nginx
$ brew install nginx(установить) или $ brew upgrade nginx(обновить)
Шаг 2. Откройте файл конфигурации nginx.
/usr/local/etc/nginx/nginx.conf (обычно здесь)
/opt/boxen/config/nginx/nginx.conf(если вы используете Boxen)
Шаг 3 Добавьте этот фрагмент кода в свой http {}блок
Замените proxy_passтам, где хотите указать yoursite.dev. В моем случае он заменял localhost: 3000 или аналогичный127.0.0.1:3000
server {
listen yoursite.dev:80;
server_name yoursite.dev;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
Шаг 4. Отредактируйте файл hosts /etc/hostsна Mac, чтобы включить
127.0.0.1 yoursite.dev
Этот файл направляет домены на localhost. Nginx прослушивает localhost и перенаправляет, если он соответствует правилу.
Шаг 5 : Каждый раз, когда вы в дальнейшем используете среду разработки, вы используете yoursite.devв адресной строке вместо того, localhost:3000чтобы Facebook правильно входил в систему.