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?
Odpowiedz
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.
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.
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ć.
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. –
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
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
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