Python GAE应用程序同时使用2脚OAuth和3脚OAuth

时间:2012-12-27 18:20:29

标签: google-app-engine python-2.7 oauth-2.0 google-apps 2-legged

我正在编写一个Python - Google App Engine应用程序。此应用必须执行以下两项重要操作:

  • 写入用户的日历。
  • 写入用户的个人资料(与Google Apps域中的用户合作)

第一次操作很简单。如果我理解OAuth,这是经典的三条腿情景。 OAuth最初开发的场景。记录的用户向客户端(我的应用程序)提供凭据以代表他/她访问用户的数据(日历)。因此,只需使用已记录的用户凭据即可完成此操作。

第二次操作并不那么容易。仅使用已记录的用户凭据无法完成此操作。这是一个双腿OAuth场景。因此,我需要委托Google Apps域管理员帐户使用Google个人资料API(通过Google数据库)访问用户的个人资料。到目前为止,我在json文件中硬编码管理员用户/密码,我的应用程序加载该文件。但对我来说这听起来像是

最后,我的应用需要处理经典的3脚OAuth场景(没问题,只需要记录用户的凭据)以及2脚OAuth场景(需要管理员凭据)。

是否有任何官方或更优雅的方式来处理谷歌应用引擎中的两种情况,使用Google Apps域,硬编码管理员凭据?

非常感谢提前

1 个答案:

答案 0 :(得分:2)

AFAIK无法使用两条腿OAuth授权对Google通讯录数据API进行写入操作。

Google's documentation specifies which APIs are accessible via 2-legged OAuth,但Google的某个人似乎忘了指定其中一些是只读的:-S

有些人遇到了同样的问题herehere

我期待谷歌有人解决这个问题。在此之前,我知道管理级凭据是唯一可行的选项。我根本不喜欢它:它是但是有效。如果有人知道更优雅的禅级方式,请照亮我们!