2012-04-30 11 views
9

Tworzę stronę internetową, na której zarejestrowano użytkownika. To, co zamierzałem zrobić, to kiedy użytkownik loguje się z Google, przechowuje ich dane (ID, e-mail, nazwisko, zdjęcie i link do G +) w lokalnej bazie danych. Następnie za każdym razem, gdy użytkownik łączy się ze stroną internetową, sprawdza, czy identyfikator użytkownika znajduje się w lokalnej bazie danych. Jeśli tak, są zalogowani i mają dostęp do wszystkich swoich danych oraz dokumentów, które przesłali. Jeśli nie, mogą się zalogować.Czy mogę przechowywać informacje z Google API w bazie danych?

Czy mogę to zrobić, czy mogę jakoś trzeba uwierzytelnić użytkownika na każdej stronie, które odwiedzają, a następnie znaleźć sposób, by połączyć to z moim lokalnej bazy danych?

+0

Nie sądzę, że nie możesz. Istnieje powód, dla którego użytkownicy danych udostępniają nazwę "publiczny". Tak samo jest z Facebookiem, Twitterem lub jakimkolwiek innym dostawcą danych OAuth (lub podobnym). Ilekroć mówisz, że masz na imię John Doe, oznacza to, że każdy, kto ma dostęp do usługodawcy, będzie mógł to zobaczyć. Jeśli jako użytkownik nie chcesz, aby ktoś o tym wiedział, po prostu kliknij Anuluj w oknie dialogowym OAuth. (W jaki sposób dodajesz nowe wiersze w języku SO?) – Andris

+0

Tak, jednak zapytanie logowania od Google pokazuje również, do czego chcę uzyskać dostęp: XXXXXX żąda pozwolenia na: Wyświetl podstawowe informacje o swoim koncie Zobacz swoją nazwę, publiczny adres URL i zdjęcie. Zobacz swoją płeć i datę urodzenia. Wyświetl swój kraj, język i strefę czasową. Zobacz swój adres e-mail Zobacz adres e-mail powiązany z kontem wykonać te operacje, gdy nie używam aplikacji – K20GH

Odpowiedz

3

Nie sądzę, że możesz przechowywać informacje API w swojej własnej bazie danych. Co więcej, dlaczego miałbyś iść na takie długości, aby umożliwić użytkownikom logowanie/uzyskiwanie dostępu do swoich dokumentów. Jeśli chcesz użyć swoich danych google jako danych logowania, musisz jedynie sprawdzić połączenie z bazą danych, wywołać wywołanie cURL w interfejsie Google i sprawdzić, czy zwróci Ci użytkownika. Jeśli tak, należy utworzyć sesję i pozwalają użytkownikowi zalogować.

+1

Zasadniczo moja baza danych zawiera 5 pól, jak wspomniano w moim pytaniem. Gdybym nie używał Googlea, prosiłbym go, aby i tak wypełnił te informacje, więc wszystko, co robię, to używanie Google do zapełniania danych. Kiedy użytkownik loguje się na stronie, ma możliwość przesłania plików, komentarzy itp., Więc potrzebowałbym sposobu na wysłanie zapytania i jeśli nie mogę wysłać zapytania do mojej bazy danych, to nie widzę, jak mogę to zrobić? Wyobrażam sobie, że strona będzie się dość ciężkie w ruchu, więc jeśli jego wywołanie API Google dla każdego ładowania strony, będę wkrótce trafić 10,000 miesięcznego limitu połączeń API .. – K20GH

+0

przechowywać przesłane dokumenty itp w bazie danych. Ale dane Google są już dostępne i nie ma potrzeby przechowywania ich samemu. (prawdopodobnie nie jest to legalne). Lepiej byłoby, gdyby po zalogowaniu się zalogowano się do google api, a Google zwróci Ci informacje o użytkowniku, które pobierzesz z bazy danych i włożysz do sesji przy logowaniu. – JeremyS

+1

Zgadnij, że byłby to sposób na zrobienie tego. Jak jednak określić, które wpisy bazy danych są dla użytkownika. Jedyne unikalne pole, które widzę, to Google, to identyfikator użytkownika, który jest ciągiem liczb, jednak jeśli nie mogę tego zatrzymać w bazie danych, nie widzę, jak mogę to zrobić. Cały system, który próbuję zaimplementować, jest DOKŁADNIE taki sam jak sposób, w jaki działa StackOverflow. – K20GH

0

Korzystanie z Google Plus klienta przepływ boczny i dodanie przycisku HTML oparte logowania. Wywołaj userid przez ajax, a następnie wstaw resp.id do sesji. Sessionid jest przechowywany w bazie danych.

Jednak po zamknięciu przeglądarki i zalogować ponownie całość rozpoczyna nową sesję i nie ma dostępu do żadnej z poprzednich dokumentów przesłanych.

Powiązane problemy