2013-07-26 8 views
5

Moduł "użytkownika" w Google App Engine używa "konta Google" zamiast logowania "G +". Czy identyfikator bazy jest taki sam? Chcę skojarzyć ich logowanie z własnymi rekordami użytkownika ...W jaki sposób logowanie przez Google+ porównuje się do logowania googleappengine.api.user?

+0

Czy możesz dodać tutaj dodatkowy kontekst? Które połączenia API tworzysz? Czy korzystasz z OAuth 2.0/OpenID/etc. w App Engine? W jakim języku pracujesz? – Joanna

+0

W pytonie można wywołać metodę google.appengine.api.user.get_current_user(), która przechodzi na konto Google (np. Tutaj jest próbka zbudowana z szablonu Codenvy: http://bjorke-gap1.appspot.com) - to idzie do loginu "Konta Google". Chciałbym wiedzieć, w jaki sposób wartości zwracanego obiektu odnoszą się do elementów zwracanych przez logowanie G +. Czy identyfikator_grupy G + zawsze ma taką samą wartość jak identyfikator konta Google, czy też są one odłączone? – bjorke

+0

Wow, świerszcze .... Korzystam z logowania G +, a także nie korzystam z magazynu danych aplikacji użytkownika "user" z powodu tego zamieszania (powinienem go użyć lub po prostu zachować różne dane uwierzytelniające oauth2, takie jak identyfikator użytkownika i nazwa jako oddzielne właściwości?) – bjorke

Odpowiedz

0

Powinieneś utworzyć własny model użytkownika, który będzie zawierał informacje o zarejestrowanych użytkownikach. Korzystając z users.get_current_user() możesz wziąć adres e-mail z konta google użytkownika i zalogować się do aplikacji.

1

Jeśli proszą o id ...

Konkretnie:

użyciu

user = users.get_current_user()

zwraca obiekt użytkownika, a nie to, co masz na myśli (w odniesieniu do Twój komentarz)

Numer user_id() jest tym, do którego adresowany jest użytkownik api:

user = users.get_current_user() 
user.user_id() 

Z Docs

If the email address is associated with a Google account, user_id returns the unique permanent ID of the user, a str. This ID is always the same for the user regardless of whether the user changes her email address. 

If the email address is not associated with a Google account, user_id returns None. 

teraz z mojego doświadczenia moja GoogleID według user_id() jest xxx8005350796570706xx i mój profil Google Plus ID jest 102445631084043565507 które są zupełnie różne. Sprawdziłem to również w aplikacjach i znanych programistach Google + i nie znalazłem podobieństwa.

1

Powiedziałbym, że to nie to samo, ale tak, można je skojarzyć.

Jeśli korzystasz z pomocy wbudowanej w GAE (lub Android) dla podstawowych kont Google (Użytkownik) do uwierzytelnienia użytkownika, to masz adres e-mail, który jednoznacznie identyfikuje jego konto Google.

Na Google+, użyj zakresu e-mail, aby uzyskać dostęp do swojego adresu e-mail:
https://developers.google.com/+/api/oauth#email-scopes

Adresy te powinny pasować, więc będzie można powiązać konta Google i Google+. Minusem tej metody jest to, że jeśli nie prosiłeś już o zakres emaila g +, będziesz musiał go dodać.

+0

nie jest prawdą, że wiadomość e-mail jest unikalnym identyfikatorem, którego nie można zmienić. Może zmieniać się w scenariuszach Google Apps (nie Gmail).Należy użyć unikalnego identyfikatora, a nie adresu e-mail, jeśli chcesz uwzględnić te przypadki. –

Powiązane problemy