【问题标题】:GAE - Storing multiple OAuth access tokenGAE - 存储多个 OAuth 访问令牌
【发布时间】:2013-04-21 13:46:48
【问题描述】:

对于我正在处理的项目,我需要存储用户访问令牌(以及我假设的身份验证代码和刷新令牌)。 我为此使用 GAE,但我很难设计模型,这很简单。我没有使用 NoSQL 的经验,所以 GAE 数据存储很麻烦。

这是项目的全局架构

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'))
  ....

但是,我还有一个问题:

我可以使用com.google.api.client.auth.oauth2.Credential 存储任何服务的 OAuth 令牌吗? 还是 Google 特有的?

同样使用这个,我不会使用AppEngineCredentialStore。如果我这样做会更好吗?反正我可以用这个吗?

【问题讨论】:

    标签: python google-app-engine database-design oauth google-cloud-datastore


    【解决方案1】:

    看来我没有很好的关键字来研究这个主题。再过几个小时: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'))
      ....
    

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 2011-03-18
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 2015-10-08
      • 2021-01-14
      • 2015-12-13
      • 1970-01-01
      相关资源
      最近更新 更多