2012-04-30 53 views
9

我正在做一個網站,它有一個用戶註冊。我要做的是,當用戶使用Google登錄時,它會將其詳細信息(ID,電子郵件,名稱,圖片和G +鏈接)存儲在本地數據庫中。然後每次用戶連接到網站時,它都會檢查用戶標識是否在本地數據庫中。如果是,他們已登錄並可以訪問他們上傳的所有詳細信息和文檔等。 如果他們不是,他們可以登錄。我可以將Google API中的信息存儲在數據庫中嗎?

我是否允許這麼做,或者不知何故必須在他們訪問的每個頁面上驗證用戶身份,然後找到一種方法將其鏈接到我的本地數據庫?

+0

我不認爲你不能。數據用戶共享的原因有一個,叫做「公開」。 Facebook或Twitter或任何其他OAuth(或類似的)數據提供商也是如此。無論何時你說你的名字是John Doe,這意味着任何有權訪問服務提供商的人都能看到。如果您作爲用戶不想讓任何人知道,只需在OAuth對話框中單擊取消即可。 (您如何在SO上添加新行?) – Andris

+0

是的,但Google的登錄提示顯示我正在請求訪問的內容: XXXXXX正在請求權限: 查看您的帳戶的基本信息 查看您的姓名,公開個人資料URL和照片。查看你的性別和出生日期。查看您的國家,語言和時區。 查看您的電子郵件地址 查看與您的賬戶相關聯的電子郵件地址 當我不使用應用程序時執行這些操作 – K20GH

回答

3

我不認爲您可以將API信息存儲在您自己的數據庫中。最重要的是,你爲什麼要這麼做才能讓用戶登錄/訪問他們的文檔。如果你想使用他們的谷歌信息作爲登錄憑據,你只需要做的不是檢查你的數據庫,而是通過cURL調用谷歌的API,看看他們是否會返回給你一個用戶。如果是這樣,請創建會話並允許用戶登錄。

+1

基本上我的數據庫包含我的問題中提到的5個字段。如果我沒有使用Google,我會要求他們填寫這些信息,因此所有即時消息都是使用Google來填充數據。 當用戶登錄到網站,他們有能力上傳文件,評論等,所以我需要一種方法來查詢這個,如果我不能查詢我的數據庫,那麼我沒有看到我怎麼能做到這一點? 我想這個網站在流量上會變得相當沉重,所以如果它爲每個頁面加載調用Google API,我很快就會達到每月10,000個API調用限制。 – K20GH

+0

將上傳的文檔等保存在數據庫中。但谷歌的數據已經可用,並且無需自己存儲。 (它可能不合法)。更好的辦法是在他們登錄時進行谷歌API調用,並讓谷歌將您從數據庫中提取的用戶信息返回給用戶,並在登錄時將其粘貼在會話中。 – JeremyS

+1

猜猜這將是一種方式來做到這一點。但是,如何確定哪些數據庫條目適合用戶。我能看到Google使用的唯一唯一字段是用戶ID,它是一串數字,但是如果我不允許將它保留在數據庫中,那麼我看不出我該怎麼做。我試圖實現的整個系統幾乎與StackOverflow完全相同 – K20GH

0

使用Google plus客戶端流程並添加基於HTML的登錄按鈕。通過ajax調用用戶標識,然後將resp.id插入到會話中。 sessionid存儲在數據庫中。

然而,當關閉瀏覽器並再次登錄時,整個新會話開始,並且無法訪問任何以前上傳的文檔。

相關問題