如何在python app引擎上运行p12文件

时间:2016-03-19 21:35:28

标签: python google-app-engine google-identity-toolkit

我无法让identity-toolkit完全使用Python App Engine Sandbox。 sample provided适用于非GAE Sandbox项目。

在示例项目中,它使用gitkit-server-config.json从文件中读取os.path。但GAE Sandbox不支持此功能。为了解决这个问题,我使用构造函数直接创建了一个GitkitClient:

gitkit_instance = gitkitclient.GitkitClient(
    client_id="123456opg.apps.googleusercontent.com",
    service_account_email="my-project@appspot.gserviceaccount.com",
    service_account_key="/path/to/my-p12file.p12",
    widget_url="http://localhost:8080/callback",
    http=None,
    project_id="my-project")

这是创建GitkitClient的正确方法吗?

现在的问题是,当我使用dev_appserver.py在本地运行时尝试进行密码重置时,我得到以下堆栈跟踪:

 File "dashboard.py", line 89, in post
    oobResult = gitkit_instance.GetOobResult(self.request.POST,self.request.remote_addr)
  File "identitytoolkit/gitkitclient.py", line 366, in GetOobResult
    param['action'])
  File "identitytoolkit/gitkitclient.py", line 435, in _BuildOobLink
    code = self.rpc_helper.GetOobCode(param)
  File "identitytoolkit/rpchelper.py", line 104, in GetOobCode
    response = self._InvokeGitkitApi('getOobConfirmationCode', request)
  File "identitytoolkit/rpchelper.py", line 210, in _InvokeGitkitApi
    access_token = self._GetAccessToken()
  File "identitytoolkit/rpchelper.py", line 231, in _GetAccessToken
    'assertion': self._GenerateAssertion(),
  File "identitytoolkit/rpchelper.py", line 259, in _GenerateAssertion
    crypt.Signer.from_string(self.service_account_key),
  File "oauth2client/_pure_python_crypt.py", line 183, in from_string
    raise ValueError('No key could be detected.')
ValueError: No key could be detected.

我认为这是.p12文件的问题?我仔细检查service_account_key="/path/to/my-p12file.p12",文件存在。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

对于未来从事这项工作的其他人,仅供参考 -

我无法在python中使用它。该文档没有说明如何在app引擎中使用它。此外,PyCrypto的依赖性问题使得这成为gcc和依赖的噩梦。

然而,我能够在Go中使用此功能,并且有一个semi-working example在线,可以使用issuespull request页面中突出显示的一些修改。祝你好运。