我无法让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"
,文件存在。我在这里缺少什么?
答案 0 :(得分:0)
对于未来从事这项工作的其他人,仅供参考 -
我无法在python中使用它。该文档没有说明如何在app引擎中使用它。此外,PyCrypto的依赖性问题使得这成为gcc和依赖的噩梦。
然而,我能够在Go中使用此功能,并且有一个semi-working example在线,可以使用issues和pull request页面中突出显示的一些修改。祝你好运。