2013-10-14 8 views
6

dokumentach Google nie gapi.auth.signOut() metody tutaj: https://developers.google.com/+/web/signin/#sign-outJak Wyloguj Korzystanie Kiedy Korzystanie logowania w Google+

Połów jest to, że mówi tylko można nazwać tę metodę po signinCallback został zwolniony. O ile mogę powiedzieć, jedynym sposobem na wystrzelenie signinCallback jest umieszczenie przycisku logowania na stronie.

Działa to doskonale na mojej stronie logowania, ale zaraz po uwierzytelnieniu użytkownika nie ma potrzeby umieszczania przycisku logowania G + na kolejnych stronach. Chcę tylko mały link "wyloguj" w rogu, który użytkownik może kliknąć, aby się wylogować.

Próbowałem wywoływać moje łącze wylogowania gapi.auth.signOut(), ale to nic nie robi, chyba że wyświetlam również nieprzydatny przycisk logowania. Jak mogę to uruchomić?

Odpowiedz

5

Przycisk musi znajdować się w DOM, nie musi być wyświetlany. Co wydaje się działać dobrze jest:

  1. Tworzenie ukryty element i dołączyć obsługi GAPI z gapi.signin.render
  2. Zaczekaj na immediate_failed błędu - wyświetla przycisk następnie
  3. W przeciwnym razie zaakceptować podpisaną w oddzwonić i wyświetlać przycisk wylogowania

Następnie otrzymasz oddzwonienie za każdym razem, ale wyświetlasz przycisk tylko po wylogowaniu.

+1

Proszę o szczegóły? Postępowałem zgodnie z Twoimi instrukcjami, aby moja witryna wyświetlała przycisk na każdej stronie, ale wyświetlała go tylko po wylogowaniu użytkownika. Problem polega na tym, że kiedy się wyloguję, a następnie odświeżam, aby dostać się na stronę z przyciskiem logowania (dowolna strona), automatycznie ponownie mnie zalogujesz. Jak mogę go wyrenderować bez automatycznego podpisywania użytkownika (jeśli użytkownik był wcześniej zalogowany)? – fgblomqvist

+1

Do tego służy metoda wylogowania - zapisuje lokalny plik cookie, aby wywołać wywołanie z błędem wylogowania użytkownika. Upewnij się, że Twoja polityka plików cookie jest poprawna - również pamiętaj, że znak może mieć problemy z localhost, jeśli używasz tego podczas sev. –

+0

Rozumiem. Cóż, dzięki tej ostatniej wskazówce udało mi się to zrobić! Nie działało to na moim serwerze dev (0.0.0.0:6543), ale działało świetnie na wersji produkcyjnej. – fgblomqvist