Повідомлення для входу у 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.

Більше налаштувань (Додаткові) тут: введіть тут опис зображення

Ключ програми та секрет правильні. Я використовую Meteor та його пакети рахунків.


Який ваш ROOT_URL?
aedm

Яку URL-адресу ви використовуєте для переадресації на сторінку входу у Facebook? Вам все одно потрібно вказати redirect_uri у запиті на авторизацію.
Едвард Цзян

@aedm: ROOT_URL встановлено наhttp://openstrategynetwork.com
Амір Рахбаран

@EdwardJiang: де я можу це зробити? Дивно, як колись працював для localhost. Але навіть localhost більше не працює.
Амір Рахбаран

Також у мене виникає ця проблема: redirect_uri відповідає точно конфігурації в налаштуваннях клієнтських OAuth - докладніше див. На developers.facebook.com/support/bugs/232085950706415 потрібна допомога будь-кому .. заздалегідь
дякую

Відповіді:


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

Це має працювати. Або ви можете змінити посилання на Facebookhttp://openstrategynetwork.com/_oauth/facebook

Ви також можете додати http://localhost/_oauth/facebookдо дійсних URI-адрес переадресації.

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


4
Що саме є URI переадресації OAuth? Я б очікував, що це буде та сама URL-адреса, що і кореневий веб-додаток.
AlvinfromDiaspar

1
Це, здається, працює. Хоча я не впевнений, що це було спочатку не так, як я намагався увійти в обліковий запис, під яким я створив додаток. Реалізовували це рішення, використовували інший рахунок, і він працював (здавалося б). Мова та інформація про URI-адреси переадресації oAuth повинні бути чіткими. Інформація вийшла з езотерики та майже таємнича. Використовувані терміни навіть не визначені та уточнені.
abtecas

дякую стільки виправленого мого питання! незважаючи на те, що у мене працює ssl
Sweet Chilly Philly

Хитрість полягає в тому, щоб переглянути URL-адресу переадресації і додати, що до "Дійсні URI-адреси перенаправлення OAuth" у моєму випадку thatin signin-facebook.
Усама

1. не забудьте додати URL-адреси з
адресою

79

Як пише запитувач

На вкладці "Додаткові" Дійсні URI-адреси переадресації встановлено на:

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

Це не

Settings -> Advanced -> Share Redirect Whitelist

але

Facebook Login -> Settings -> Valid OAuth redirect URIs

Це врятувало б мені 2 години спроб та помилок.

Ви також повинні мати це на увазі, що www.example.comце не те саме, що example.com. Додайте обидва формати до URL-адреси переадресації.


11
Виборці: додайте коментар щодо своїх проблем, інакше відповідь не стане кращою.
andymel

6
Ісусе, я провів стільки часу, шукаючи в неправильному місці, дякую.
рик

Намагаючись додати новий URI, я отримую: New HTTP Redirect URIs are not allowed:(
XCS

Дуже дякую. Я спробував усе, але в неправильному місці. Що означає "Поділитися перенаправленням білого списку"?
Суніл Кумар

19

Це працювало для мене.

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

Я отримав це з мого браузера після натискання кнопки Facebook, ваш веб-переглядач буде перенаправлений на посилання для інтеграції з API Facebook, тож де ви отримаєте це переспрямування. Для мого випадку посиланням було таке, звідки я отримав 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

Ви заощаджуєте мої тижні @Umar Asghar
kn3l

11

Переконайтесь, що " Домен додатка " та Facebook Login => Дійсні 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

Для моєї програми на вузол

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

поставити URL-адресу зворотного виклику

Мої URI-адреси переадресації виконують наступним чином

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

Переконайтеся «/» в кінці Facebook AUTH перенаправлення URI

Ці установки працювали на мене.


6

У моєму випадку я просто повинен був переконатися, що у мене є URL-адреси як з www, так і без них для URL-адрес додатка та перенаправлення :

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

У моєму випадку мені довелося використовувати: signin-facebookпісля URL-адреси свого веб-сайту для URL-адреси переадресації.


Чи справді потрібні домени додатків? Коли я тестував локально, він працював, не встановлюючи App Domains
Darius.V

Чи використовуєте ви oAuth та перенаправлення?
Hooman Bahreini

так. Я використовую Symfony bundle github.com/knpuniversity/oauth2-client-bundle
Darius.V

3

Перехід від hauth.done = Facebook до hauth_done = Facebook у валідних URI- адресах переадресації OAuth зафіксував це для мене.


1

ОК Перш за все це дуже чітке повідомлення про помилку. Подивіться, це багато прокляття пропускає це, включаючи моє «я». Погляньте на знімок екрана, будь ласка.

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

У розділі Продукти> Вхід у Facebook> Налаштування

або просто перейдіть до цієї URL-адреси тут (замініть YOUR_APP_ID на ідентифікатор програми на лол):

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

Якщо ви працюєте над localhost:3000Переконайтесь, що у вас єhttps://localhost:3000/auth/facebook/callback

Звичайно, вам не потрібно мати статус у прямому ефірі (Зелений перемикач у верхньому правому куті), але в моєму випадку я зараз розгортаюсь до геронку і незабаром заміню 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 та провайдер. Це воно.


1

Це може комусь допомогти.

У мене було подібне повідомлення про помилку, але лише у розробниках та інсценуванні, а не у виробництві. Дійсні URI-адреси перенаправлення були правильно встановлені як для підрозділів розробки, так і для постановки, а також для виробництва.

Виявилося, я забув, що для тих середовищ ми використовуємо тестовий додаток FB, який є окремим на сторінці розробників FB. Довелося вибрати це і оновити його налаштування.


0

Спробуйте додати http://openstrategynetwork.com/ signin-facebook до налаштувань клієнта OAuth дійсну URL-адресу переадресації разом із власною URL-адресою переадресації.


0

Вхід Помічник вашого сайту

$ loginUrl = $ helper-> getLoginUrl ('xyz.com/user_by_facebook/', $ дозволи);

та на інформаційній панелі додатків у Facebook (на вкладці "Продукти": Facebook Login )

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

як було сказано раніше, роблячи запит з Інтернету


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-адресу вашого веб-сайту чи платформи додатків. Для цього вам доведеться вибрати " Додати платформу ".

вимога відповідності 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 / асф . Після додавання http://0.0.0.0:3000/asdf до дійсних URI- адрес перенаправлення OAuth або переходу до http: // localhost: 3000 / asdf , воно працювало як очікувалося.


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-адреси, я додав у налаштування Spring Security таким чином -invalid-url-rewriting = "true" таким чином:

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

І це вирішило мою проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.