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.


