2010-11-28 74 views
3

我的應用從我的用戶的Google日曆中提取信息。 用戶已經必須登錄到我的應用程序,所以他們覺得很煩人,他們必須每次會話至少「授予訪問」到他們的谷歌帳戶一次(目前使用OAuth)。如何獲得持久訪問用戶的谷歌帳戶?

是否有辦法獲得永久(或更接近它)的資助?

我甚至可以使用openID作爲我的主身份驗證。這會有幫助嗎?

我相信GData API提供了一個ClientLogin協議,它要求我存儲用戶的登錄信息,但我對此並不滿意,儘管如果它歸結爲它,我認爲它比替代方案更好。

回答

3

oAuth令牌一次生成不會過期EVER,除非用戶/應用程序自己撤消它們。當用戶在您的應用程序上註冊時,只需抓取訪問令牌並首次訪問一次祕密令牌。在本地存儲它,並在需要時使用它來查詢GDATA Api。

當用戶再次登錄時,無需每次請求訪問令牌。

2

既然您正在使用OAuth,我知道您的應用程序是一個Web應用程序?那麼,OAuth是你遇到你所描述的問題的原因,這不完全是一個問題,而是API的一個特性。請參閱OAuth連接是數字簽名的,因此每次用戶嘗試登錄時,都會將其重定向到OAuthAuthorizeToken頁面。

要解決您的問題,請使用AuthSub而不是OAuth。它不太安全,但更方便。此外,它還允許您的應用程序簡單地收到一個令牌,說明該用戶已得到Goodle的驗證,因此您無需以這種方式存儲有關您的用戶的任何信息。

希望這會有所幫助!

1

有一個Oauth/OpenID hybrid solution(見source) - 基本上你問某些範圍訪問,得到的回報基本用戶數據和請求令牌,那麼你換取身份驗證令牌,並將其保存以備將來使用。

相關問題