Скажем, у меня есть приложение с Sinatra REST API на http://example.com:4567. С моим приложением у меня есть дизайнер, работающий над интерфейсом.Вместо того, чтобы устанавливать его с локальным бэкэндом, я редактирую его файл hosts следующим образом:
127.0.0.1 local.example.com
и его httpd-vhosts.conf следующим образом:
ProxyPass /api http://example.com:4567
ProxyPassReverse /api http://example.com:4567
, чтобы APIвызовы передаются на удаленный хост.Затем я создаю vhost для local.example.com в apache, который сопоставляется с его локальным каталогом, где находится наше передовое хранилище.Это позволяет мне предоставить ему удаленный сервер с локальным интерфейсом.
Причина поддомена заключается в том, что мы выполняем аутентификацию Facebook, которая имеет свои ограничивающие доменные политики для аутентификации.Мы можем успешно авторизовать пользователя в Facebook и перенаправить обратно в приложение, но при попытке получить токен доступа вы получите ответ 400 с сообщением:
{"error"=>{"message"=>"Missing client_id parameter.", "type"=>"OAuthException", "code"=>101}}
Я полагаю, что client_id установлен правильно, так как он установленв стойке: oauth: клиентский объект правильно, и поток идентичен и происходит сбой только тогда, когда домен отличается.Единственная мысль, которая у меня возникла, заключается в том, что Facebook может не понравиться аутентификация пользователя с local.example.com, в то время как токен доступа запрашивается с example.com, но я понимаю, что facebook будет аутентифицироваться на всех поддоменах.Я также занесен в белый список local.example.com в моем приложении.
Есть идеи или советы, как этого добиться?Заранее спасибо.