0

對於我正在開發的項目,我需要存儲用戶訪問令牌(以及我認爲的認證代碼和刷新令牌)。 我正在使用GAE,因此我很難設計模型,這很簡單。我對NoSQL沒有經驗,因此GAE數據存儲很麻煩。GAE - 存儲多個OAuth訪問令牌

下面是該項目

Android Mobile --- Python Server --- GAE Python Server 
    |_______________________________________| 

用戶將經由使用他們的谷歌帳戶和OAuth的GAE服務器的Android應用程序註冊的全球架構。然後我想我應該創建一個用戶對象,通過GAE檢索user_id。

之後我希望用戶啓用我的應用程序以訪問某些雲存儲服務(Drive,Box,Dropbox,...)。 一旦他這樣做,我將有三個相對於此服務和用戶的令牌,我需要以某種方式存儲它們。

相對於GAE數據存儲中的單個用戶,存儲多個服務的Oauth憑證的最佳方式是什麼?

從我已閱讀的內容中,我可以使用Expando類並通過服務向用戶實體添加服務,或者做一個單獨的實體並使用用戶實體中的參考和列表來存儲它們... 最相關信息片GAE Credential Storage。但我怎麼能用這個多服務,因此憑據?

謝謝大家的幫助

----編輯------------------------------

看來我沒有很好的關鍵詞來研究這個問題。 後幾個小時: GAE - Google Developer - Modeling Entity Relationships

class User(db.Model): 
    name = db.StringProperty() 

class ServiceOAuthAccess(db.Model): 
    user = db.ReferenceProperty(User) 
    service_name = db.StringProperty(choices=('Dropbox', 'Box', 'Drive')) 
    .... 

不過,我仍然留下了quetion:

我可以將使用com.google.api.client.auth.oauth2.Credential任何服務的OAuth令牌? 還是Google專用?我也不會使用AppEngineCredentialStore。如果我這樣做會更好嗎?無論如何,我可以使用這個?

回答

0

看來我沒有很好的關鍵詞來研究這個問題。幾小時後:GAE - Google Developer - Modeling Entity Relationships

class User(db.Model): 
    name = db.StringProperty() 

class ServiceOAuthAccess(db.Model): 
    user = db.ReferenceProperty(User) 
    service_name = db.StringProperty(choices=('Dropbox', 'Box', 'Drive')) 
    ....