I have IT

Loading

Facebook Login nie działa poprawnie mimo Live Mode? Uważaj na pułapkę mod_security

Facebook Login nie działa poprawnie mimo Live Mode? Uważaj na pułapkę mod_security

Pracując nad wdrożeniem logowania przez Facebooka na stronie klienta, natknąłem się na problem, który może zmylić niejednego dewelopera. Aplikacja została oficjalnie przełączona w tryb produkcyjny (Live Mode), ale… funkcjonalność logowania nie działała prawidłowo.

Niby Live, ale jednak nie

W panelu developers.facebook.com aplikacja wyglądała na aktywną:

  • przełącznik Live Mode był włączony,
  • polityka prywatności została podana,
  • strona działała poprawnie w przeglądarce.

Mimo to, przy próbie przyznania zaawansowanego dostępu do pola email pojawiał się komunikat:

„You must provide a valid Privacy Policy URL in order take your app Live. Go to Basic Settings and make sure it is valid.”

Oznaczało to, że Facebook nie był w stanie zweryfikować poprawności URL-a – a to sprawiało, że aplikacja faktycznie nie została aktywowana w 100%, mimo że tryb Live teoretycznie był włączony.


Kluczowa wskazówka: Sharing Debugger i błąd 403

Kiedy uruchomiłem Facebook Sharing Debugger i sprawdziłem URL polityki prywatności, narzędzie zgłosiło:

HTTP 403 Forbidden

Oznaczało to, że Facebook nie miał dostępu do tej strony – czyli nie mógł jej zweryfikować, przez co „aktywacja” aplikacji nie mogła zostać dokończona.


Źródło problemu: ModSecurity blokuje requesty

Zajrzenie do error.log na serwerze ujawniło przyczynę:
ModSecurity (mod_security) – warstwa zabezpieczeń działająca po stronie hostingu – blokowała zapytania przychodzące z serwerów Facebooka.

To typowe zabezpieczenie może uznać ruch od botów (nawet legalnych jak Facebook) za podejrzany i go odrzucać.


Rozwiązanie: Wyłączenie konkretnej reguły ModSecurity

W logach widniało ID reguły, która blokowała żądanie. Rozwiązaniem było dodanie do .htaccess wpisu:

SecRuleRemoveById XXXXXXX

Zamiast XXXXXXX należy podstawić identyfikator błędnej reguły z logu.

Po dodaniu tej dyrektywy:
  • Sharing Debugger zaczął otrzymywać kod 200,
  • aplikacja mogła zostać poprawnie zweryfikowana i aktywowana,
  • logowanie przez Facebooka zaczęło działać zgodnie z oczekiwaniami.

Wnioski

To studium przypadku pokazuje, że Facebook Live Mode może być tylko „pozornie aktywny”, jeśli któraś z kluczowych weryfikacji (np. polityka prywatności) kończy się błędem 403.

🔍 Zawsze warto:

sprawdzić URL w Sharing Debuggerze,

zajrzeć do logów serwera (szczególnie error.log),

mieć świadomość działania warstw takich jak mod_security.

Masz podobny problem z integracją aplikacji lub API?
Skontaktuj się ze mną – znajdę rozwiązanie nawet dla tych najmniej oczywistych błędów.