Добре, я не впевнений, що з цими відповідями, але я дам вам знати, що мені вдалося, як порадив старший розробник моєї роботи. Я працюю в Ruby on Rails і використовую код 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 : Відредагуйте файл хостів /etc/hosts
на Mac для включення
127.0.0.1 yoursite.dev
Цей файл спрямовує домени до localhost. Nginx прослуховує localhost і переспрямовує, якщо він відповідає правилу.
Крок 5 : Кожного разу, коли ви використовуєте своє середовище розробників, ви використовуєте yoursite.dev
в адресному рядку замість того, localhost:3000
щоб Facebook правильно входив у систему.