Хорошо, я не уверен, что случилось с этими ответами, но я дам вам знать, что сработало для меня, как советовал старший разработчик в моей работе.Я работаю в Ruby on Rails и использую JavaScript-код Facebook для получения токенов доступа.
Проблема: Для аутентификации Facebook берет URL-адрес из вашей адресной строки и сравнивает его с тем, что имеется в файле.Они не позволяют вам использовать localhost:3000
по любой причине.Однако вы можете использовать полностью подготовленное имя домена, например yoursite.dev
, запустив локальный сервер и указав yoursite.dev
на 127.0.0.1:3000
или там, где указывал ваш локальный хост.
Шаг 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
Этот файл направляет домены на локальный хост.Nginx прослушивает localhost и перенаправляет, если он соответствует правилу.
Шаг 5 : Каждый раз, когда вы используете свою среду разработки, вы используете yoursite.dev
в адресной строке вместоlocalhost:3000
поэтому Facebook правильно регистрирует вас.