Хорошо, я не уверен, что случилось с этими ответами, но я дам вам знать, что сработало для меня, как посоветовал старший разработчик на моей работе. Я работаю в 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 правильно входил в систему.