Сообщение для входа в Facebook: «URL-адрес заблокирован: это перенаправление не удалось, поскольку URI перенаправления не внесен в белый список в настройках клиента OAuth приложения».

121

Важное замечание:

Если вы зарегистрируетесь для тестирования, зайдите в настройки своего профиля и в свои интересы добавьте удалить профиль .

Пытаюсь войти на мой сайт через Facebook :

Я получаю следующую ошибку:

URL-адрес заблокирован: это перенаправление не удалось, поскольку URI перенаправления не внесен в белый список в настройках клиента OAuth приложения. Убедитесь, что клиент и веб-вход OAuth включены, и добавьте все свои домены приложений в качестве действительных URI перенаправления OAuth.

Мои settings(Основы) в Facebook:

На вкладке «Дополнительно» Valid OAuth redirect URIsустановлено следующее:

http://openstrategynetwork.com/_oauth/facebook?close

Приложение есть public.

Дополнительные настройки (Advanced) здесь: введите описание изображения здесь

Ключ и секрет приложения верны. Я использую Meteor и его пакеты аккаунтов.

Амир Рахбаран
источник
Какой у вас ROOT_URL?
aedm
Какой URL вы используете для перенаправления на страницу входа в Facebook? Вам все равно нужно указать redirect_uri в запросе авторизации.
Эдвард Цзян
@aedm: ROOT_URL установлен наhttp://openstrategynetwork.com
Амир Рахбаран
@EdwardJiang: где я могу это сделать? Странно, ведь когда-то он работал на localhost. Но даже localhost больше не работает.
Амир Рахбаран
У меня тоже возникла эта проблема, redirect_uri точно соответствует конфигурации в настройках Client OAuth - подробнее см. На developers.facebook.com/support/bugs/232085950706415 нужна помощь кому угодно .. заранее спасибо
jdme

Ответы:

80

Кнопка входа в систему через Facebook на вашем сайте ведет на:

https://www.facebook.com/v2.2/dialog/oauth?client_id=1500708243571026&redirect_uri=http://openstrategynetwork.com/_oauth/facebook&display=popup&scope=email&state=eyJsb2dpblN0eWxlIjoicG9wdXAiLCJjcmVkZW50aWFsVG9rZW4iOiIwSXhEU05XamJjU0VaQWdqcmF6SXdOUWRuRFozXzc0X19lbVhGWUJTZGNYIiwiaXNDb3Jkb3ZhIjpmYWxzZX0=

Примечание: redirect_uri=http://openstrategynetwork.com/_oauth/facebook

Если вместо этого вы измените ссылку на:

redirect_uri=http://openstrategynetwork.com/_oauth/facebook?close

Он должен работать. Или вы можете изменить ссылку Facebook наhttp://openstrategynetwork.com/_oauth/facebook

Вы также можете добавить http://localhost/_oauth/facebookк действующим URI перенаправления.

Facebook требует, чтобы вы занесли URI перенаправления в белый список, поскольку в противном случае люди могли бы войти в систему с помощью Facebook для вашей службы, а затем отправить свой токен доступа на сервер злоумышленника! И вы не хотите, чтобы это произошло;]

Эдвард Цзян
источник
4
Что такое URI перенаправления OAuth? Я ожидал, что это будет тот же URL-адрес, что и у корневого веб-приложения.
AlvinfromDiaspar
1
Кажется, это работает. Хотя я не уверен, что это было изначально, поскольку я пытался войти в систему с учетной записью, под которой у меня создано приложение. Реализовал это решение, использовал другую учетную запись, и это сработало (похоже). Язык и информация об URI перенаправления oAuth должны быть ясными. Информация отнюдь не эзотерическая и почти таинственная. Используемые термины даже не определены и не разъяснены.
abtecas
Большое спасибо, исправил мою проблему! хотя у меня работает ssl
Sweet Chilly Philly
Хитрость заключается в том, чтобы посмотреть URL-адрес перенаправления и добавить его к «Действительным URI перенаправления OAuth» в моем случае это signin-facebook.
Усама Салим
1. не забудьте добавить URL-адреса с www и без URL-адресов в ваши действительные URI перенаправления
аутентификации
79

Как пишет вопрошающий

На вкладке «Дополнительно» для допустимых URI перенаправления OAuth установлено значение: ...

и у меня была такая же проблема (запись URL-адреса перенаправления в неправильное поле ввода), я хотел бы выделить это

Это не

Settings -> Advanced -> Share Redirect Whitelist

но

Facebook Login -> Settings -> Valid OAuth redirect URIs

Это сэкономило бы мне 2 часа проб и ошибок.

Вы также должны иметь в виду, что www.example.comэто не то же самое, что example.com. Добавьте оба формата в URL-адрес перенаправления.

andymel
источник
11
Голосующие против: пожалуйста, добавьте комментарий о своих опасениях, иначе ответ не улучшится.
andymel
6
Господи, я столько времени искал не в том месте, спасибо.
ricks
Попытка добавить новый URI я получаю: New HTTP Redirect URIs are not allowed:(
XCS
Спасибо. Я все перепробовал, но не в том месте. Что означает «Белый список перенаправления ресурсов»?
Сунил Кумар
20

Это сработало для меня.

redierct_url = http://127.0.0.1:8080/accounts/facebook/login/callback/

Я получил это из своего браузера после нажатия кнопки Facebook, ваш браузер будет перенаправлен на ссылку для интеграции с Facebook API, где вы получите это перенаправление. В моем случае ссылка была отсюда, откуда я получил redirect_url.

https://www.facebook.com/dialog/oauth?client_id=...&scope=&response_type=code&state=...&redirect_uri=http://127.0.0.1:8080/accounts/facebook/login/callback/

введите описание изображения здесь введите описание изображения здесь

Умар Асгар
источник
Для моего приложения MVC мне пришлось добавить "/ signin-facebook" к URL-адресу сайта .... спасибо за замечательный совет!
davaus 09
Ты спасешь мои недели @Umar Asghar
kn3l
11

Убедитесь, что « Домен приложения » и вход в Facebook => Действительные URI перенаправления OAuth . Там вы должны проверить www или без www . Лучше использовать с www или без для всех URL-адресов в файлах php, html, css и настройках приложения Fb.

Другое дело, если вы используете конец URL-адресов "/", вы должны добавить этот URL-адрес в настройки приложения для действительных URI перенаправления OAuth . Пример: - https://www.example.com/index.php/, если этот URL-адрес, если вы используете в URL-адресе перенаправления, вы должны установить его в настройках приложения.

Надеюсь, это поможет.

Сумит Харшан
источник
в домене приложения вы добавляете как с www, так и без него
qwertzman
Что вы имеете в виду под этим сообщением, друг? Я немного запутался.
TheBAST
6

Для моего Node-приложения

"facebook": {
        "clientID" : "##############",
        "clientSecret": "####################",
        "callbackURL": "/auth/facebook/callback/"
    }

поместить обратный URL-адрес относительно

Мои URI перенаправления OAuth следующим образом

введите описание изображения здесь

Убедитесь, что «/» в конце URI перенаправления авторизации Facebook

Эти настройки сработали для меня.

НИХИЛ СМ
источник
6

В моем случае мне просто нужно было убедиться, что у меня есть мои URL-адреса с www и без него для URL-адресов домена приложения и перенаправления :

введите описание изображения здесь

В моем случае мне пришлось использовать: signin-facebookпосле URL-адреса моего сайта для URL-адреса перенаправления.

Hooman Bahreini
источник
Действительно ли нужны домены приложений? Когда я тестировал локально, он работал без установки доменов приложений
Darius. V 02
Вы используете oAuth и перенаправление?
Hooman Bahreini
да. Я использую пакет symfony github.com/knpuniversity/oauth2-client-bundle
Darius.V 03
3

Изменение с hauth.done = Facebook на hauth_done = Facebook в действительных URI перенаправления OAuth исправило это для меня.

girlgeek
источник
1

Хорошо. Прежде всего, это очень четкое сообщение об ошибке. Вы только посмотрите, как многие разработчики упускают из виду это, в том числе и я. Посмотрите, пожалуйста, на снимок экрана.

введите описание изображения здесь

В разделе Продукты> Вход в Facebook> Настройки

или просто перейдите по этому URL-адресу (замените YOUR_APP_ID своим идентификатором приложения lol):

https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/

Если вы работаете, localhost:3000убедитесь, что у вас естьhttps://localhost:3000/auth/facebook/callback

Конечно, вам не обязательно иметь статус live (зеленый переключатель в правом верхнем углу), но в моем случае я развертываюсь на heroku сейчас и скоро заменю его localhost:3000наhttps://myapp.herokuapp.com/auth/facebook/callback

Конечно, я обновлю URL-адреса в Настройки / Основные и настройки / Дополнительно, а также добавлю URL-адрес политики конфиденциальности в основной раздел.

Я предполагаю, что вы правильно настроили инициализаторы / devise.rb, если вы используете devise, и у вас установлен соответствующий gem 'omniauth-facebook', '~> 4.0'гем facebook gem 'omniauth', '~> 1.6', и у вас есть необходимые столбцы в таблице пользователей, такие как uid, image и provider. Вот и все.

Элиас Глиптис
источник
1

Это может кому-нибудь помочь.

У меня было аналогичное сообщение об ошибке, но только в среде разработки и промежуточной среды, а не в производственной среде. Действительные URI перенаправления были правильно установлены для поддоменов dev и staging, а также для производства.

Оказалось, я забыл, что для этих сред мы используем тестовое приложение FB, которое находится на странице разработчика FB отдельно. Пришлось выбрать это и обновить его настройки.

vargen_
источник
0

Попробуйте добавить http://openstrategynetwork.com/ sigin-facebook в действительный URL-адрес перенаправления в настройках OAuth клиента вместе с вашим собственным URL-адресом перенаправления.

Hung Vu
источник
0

Помощник по входу на ваш сайт

$ loginUrl = $ helper-> getLoginUrl ('xyz.com/user_by_facebook/', $ разрешения);

и в панели управления приложения facebook (на вкладке продуктов: вход в Facebook )

Действительные URI перенаправления OAuth также должны совпадать с xyz.com/user_by_facebook/

как упоминалось ранее при запросе из Интернета

Zohaib
источник
0

У нас была такая же проблема, такой кошмар.

  1. Убедитесь, что ваши идентификаторы приложений и секретные ключи верны. Если вы используете отдельные приложения для разработки, тестирования и производства для тестирования, идентификаторы приложений и секретные ключи будут разными для каждого приложения. Часто это проблема.

  2. Убедитесь, что URL-адрес обратного вызова задан правильно в файле конфигурации приложения (см. Ниже). А затем добавьте его как тот же URL в настройках « Вход в Facebook », где написано « Действительные URI перенаправления OAuth ». Это должно выглядеть так (в зависимости от вашей среды):

http://localhost/auth/facebook/callback http://staging.example.com/auth/facebook/callback http://example.com/auth/facebook/callback

  1. Убедитесь, что ваш домен приложения настроен на правильный домен для каждой среды, включая «www» и «no-www». Facebook также требует, чтобы эти домены соответствовали URL-адресу вашего веб-сайта или платформы приложения. Вам нужно будет выбрать « Добавить платформу », чтобы добавить это.
kaleazy
источник
Требование сопоставления URI перенаправления с URL-адресом веб-сайта для меня невозможно, потому что мои URI перенаправления или определенные на другом сервере, и мой веб-сайт обслуживается с другого сервера, я могу это сделать?
Джавад
0

В моем случае я интегрировал вход через Facebook в учебник по приложению Rails. Я добавил http: // localhost: 3000 / adsf к своим действительным URI перенаправления OAuth, но приложение Rails открывало URL-адрес как http://0.0.0.0:3000 и поэтому пыталось перенаправить на http: //0.0. 0,0: 3000 / asdf . После добавления http://0.0.0.0:3000/asdf к действительным URI перенаправления OAuth или перехода по адресу http: // localhost: 3000 / asdf он работал должным образом.

jausel
источник
0

В моем случае URI, как он был определен в FB, был в порядке, но я использовал Spring Security, и он добавлял ; jsessionid = 0B9A5E71DAA32A01A3CD351E6CA1FCDD в мой URI, поэтому это вызвало несоответствие.

https://m.facebook.com/v2.5/dialog/oauth?client_id=your-fb-id-code&response_type=code&redirect_uri=https://localizator.org/auth/facebook;jsessionid=0B9A5E71DAA32A01A3CD351E6CA1FCDD&scope=email&state=b180578a-007b-48bc-bd81-4b08c6989e18

Чтобы избежать перезаписи URL, я добавил disable-url-rewriting = "true" в конфигурацию Spring Security следующим образом:

<http auto-config="true" access-denied-page="/security/accessDenied" use-expressions="true"
      disable-url-rewriting="true" entry-point-ref="authenticationEntryPoint"/> 

И это устранило мою проблему.

lm2a
источник