2010-05-02 21 views
2

我目前正在使用Google的oAuth創建一個Web應用程序。我想知道如何唯一標識經過身份驗證的用戶,所以我不會無意中添加重複項。如何唯一標識oAuth中的某人

回答

1

做到這一點的最好方法是使用OpenID和oAuth擴展(又名混合)。

+0

是不是反之亦然:oauth with openid延期?並沒有openid連接不是最終的,沒有人支持它? – Dannyboy 2014-01-15 18:38:03

-1

您應該在您的網站中爲用戶保存的user_id以及相應的access_token和access_token_secret保存在某處。

然後你就可以查詢該表(或你保存的信息)與USER_ID並獲得適當的令牌

問候

+2

我不知道這有什麼幫助。問題是,每次用戶登錄時都會提供不同的令牌/令牌_祕密 - 即使它是同一用戶。因此,如果用戶第二次連接帳戶(無論出於何種原因),我的腳本將無法判斷它是否重複,並會添加它。我想要一種方法來防止這種情況。 – yydl 2010-05-03 02:21:28

+0

檢查用戶是否已有令牌,如果使用該令牌,則不使用OAuth工作流。 – 2010-05-03 21:07:46

+0

這隻有在用戶只能添加一個帳戶時纔有用。但是,在許多應用程序中,用戶可以驗證多個帳戶 – yydl 2010-05-04 05:06:42

2

不穀歌給你喜歡的用戶名或用戶ID等獨特PARAMS ?

例如,Twitter和Facebook爲您提供用戶名和唯一的標識用戶個人資料圖片的網址。如果您在服務器端保存這些參數,則可以在用戶下次識別用戶時訪問您的網站。

+0

恰恰是這個問題。據我所知,他們沒有。他們返回的只是令牌和token_secret。 – yydl 2010-05-03 13:29:35

+1

是的,我認爲你應該檢查你是否可以得到一些用這些令牌查詢谷歌的用戶參數,並將它們存儲在你的數據庫中。 – 2010-05-03 14:19:18

+0

例如,我已經能夠通過解析Gmail提要來獲取他們的電子郵件地址。但是:a)它遠非理想(額外的請求導致延遲)和b)它不是永久唯一的,因爲用戶可以改變他們的電子郵件地址,如果他們想要的話[至少這是谷歌說的] – yydl 2010-05-04 05:09:49

0

我目前僅使用OAuth,並且要求https://www.googleapis.com/auth/userinfo#email範圍如http://sites.google.com/site/oauthgoog/Home/emaildisplayscope中所述,以獲取經過身份驗證的用戶的電子郵件地址。我正在使用電子郵件地址來唯一標識用戶。現在這應該足夠好了。

編輯:

根據最近的谷歌開發者評論(https://groups.google.com/group/oauth2-dev/browse_thread/thread/cf5c137f872f9932),他們目前正在研究這個問題,但對於任何生產準備,你應該使用OpenID認證。