Dla porównania, tutaj jest przepływ Google+ że pracuję z:Google OAuth2 Zaloguj się do angularjs zwrotnego
https://developers.google.com/+/web/signin/server-side-flow
- użytkownik kliknie przycisk logowania. Żądanie autoryzacji jest wysyłane do serwerów OAuth Google
dialogowe- OAuth jest wywoływane przez użytkownika
- access_token, id_token i kod jednorazowy są zwracane
- Klient wysyła id_token i kod do serwera
- wymiana jednego serwera Kod -time dla access_token
- Google zwraca access_token
- Server należy potwierdzić "w pełni zalogowany" do Klienta
mam już to przeważnie działa, ale chciałbym angularjs wiedzieć, kiedy klient jest „w pełni zalogowany” w kroku 7.
Idealnie chciałbym krok 3, aby być obsługiwane przez kontroler angularjs, ale Nie jestem pewien, czy to możliwe.
Przycisk logowania jest tutaj:
<!-- Add where you want your sign-in button to render -->
<div id="signinButton">
<span class="g-signin"
data-scope="https://www.googleapis.com/auth/plus.login"
data-clientid="YOUR_CLIENT_ID"
data-redirecturi="postmessage"
data-accesstype="offline"
data-cookiepolicy="single_host_origin"
data-callback="signInCallback">
</span>
</div>
<div id="result"></div>
Parametr danych zwrotna pozwala mi określić funkcję, ale mogę tylko dostać go do pracy na funkcji globalnych.
Jedyne, co mogę zrobić, to AngularJS, który nieustannie odpytuje serwer za aktualizacje, na wypadek gdyby użytkownik się zalogował, ale zastanawiałem się, czy istnieje sposób, aby to działało w strukturze zdarzeń, tak aby to wszystko natychmiast.
Bez względu na to, czy jest to możliwe, czy nie, byłbym bardzo wdzięczny za wszelkie porady dotyczące tego, jak powinienem się z tym pogodzić. Daj mi znać, jeśli masz jakieś pytania. Dziękuję Ci!
Jak to rozwiązałeś? Próbowałem przekazać funkcję jako odniesienie do callbalck, ale nie działa. – vintem
@VinTem Kluczem dla mnie było podanie ciągu znaków reprezentującego identyfikator elementu, a nie samego elementu kątowego (jqlite). – alalonde
Aby było to jeszcze łatwiejsze, znalazłem tę fajną małą kanciastą dyrektywę, która wykonuje pracę generowania przycisku Google plus, otwierając okno i przywracając token dostępu do okna orgin, które możesz następnie wysłać do swojego serwera, aby uzyskać szczegóły użytkownika. https://github.com/sirkitree/angular-directive.g-signin – craigvl