/ / Chrome nieprzechwycony błąd „Protokoły muszą się zgadzać” na G + przy logowaniu - google-chrome, google-api, google-plus, google-oauth

Błąd niepoprawny Chrome "Protokoły muszą się zgadzać" w logowaniu G + - google-chrome, google-api, google-plus, google-oauth

Dodałem przycisk logowania G + na mojej stronie, ale wciąż widzę ten problem. W większości przypadków jest to pierwszy raz i jeśli spróbujesz połączyć się po odświeżeniu strony, działa.

Oto błąd:

Uncaught SecurityError: Zablokowano ramkę z origin .com „przed dostępem do ramki z origin”https://accounts.google.comRamka żądająca dostępu ma protokół „http”, ramka, do której uzyskiwany jest dostęp, ma protokół „https”. Protokoły muszą być zgodne.

Widziałem ten post Zablokowana ramka przycisku logowania Google + ale rozwiązanie nie jest dla mnie istotne.

Odpowiedzi:

0 dla odpowiedzi № 1

Po pierwsze, chcę podkreślić, że naprawdę powinieneś używać https podczas obsługi poświadczeń użytkownika. Jeśli możesz, uzyskaj certyfikat SSL i udostępniaj swoje treści przez https. Korzystając z HTTPS, możesz temu zapobiec MiTM ataki i wycieki informacji o użytkowniku.

Poza tym istnieje wiele potencjalnych źródeł wyzwalających ostrzeżenie:

  1. Jeśli używasz przycisku Zaloguj się na stronieobsługujący HTTP zamiast bezpieczniejszego HTTPS, czasami komunikacja z serwerami logowania jest blokowana. Jeśli logowanie czasami działa, a czasem nie, może to być przyczyną.

  2. Jeśli autoryzowany protokół źródłowy JavaScript (http / https) nie pasuje, serwer autoryzacji Google odrzuci twojego klienta (http://yoursite.com kiedy miałeś na myśli https://yoursite.com)

  3. Jeśli autoryzowane źródło JavaScript nie pasuje (np. Wpisujesz .com w autoryzowanym miejscu pochodzenia, kiedy miałeś na myśli yoursite.com), serwer OAuth odrzuci twoją ramkę.

Podanie informacji o autoryzowanym pochodzeniu (zaciemnionym ze względów bezpieczeństwa) w Konsoli programisty Google i witrynie może pomóc w ustaleniu, co się dzieje w twoim przypadku.

Kilka rzeczy, które możesz zmienić, aby zobaczyć, czy to pomaga:

  • Próbować zmiana polityki plików cookie albo "single_host_origin" lub "http://yoursite.com".
  • Spróbuj wyczyścić autoryzowane źródła w konsola programisty zawierać tylko domenę http: //.
  • Spróbuj uzyskać dostęp do witryny z karty incognito, jeśli to zadziała, pliki cookie przeglądarki mogą być w złym stanie dla witryny.
  • Spróbuj użyć Diagnostyka sieci Chrome aby sprawdzić, czy określone żądania kończą się niepowodzeniem.
  • Spróbuj zastąpić dowolne załączniki, które używają jawnego protokołu, włączając odwołanie do protokołu względnego (np. Zamień <script src="https://foo.bar/include.js" /> z <script src="//foo.bar/include.js" />)