我正在尝试使用python根据他们的文档here验证Google id令牌的oauth。执行它的代码似乎是可管理的,但我不太熟悉在flask框架(或任何python框架)中设置库。
我只想要这些线条起作用:
from google.oauth2 import id_token
from google.auth.transport import requests
我用pip安装了它们:
pip install --upgrade google-api-python-client
这本身不起作用。但我在他们的文档中看到了谷歌的这些笔记:
因为App中没有安装Python客户端库 引擎Python运行时环境,它们必须是vendored into your 应用程序就像第三方库一样。
我试图在失去的地方做这件事。
我已在其设施中添加了文件appengine_config.py
。虽然它说它需要与app.yaml
文件位于同一目录中,但我没有这个目录,也没有看到有关如何设置它的任何信息。
简而言之,我是否正确地安装这些google python库?如果是这样,我错过了什么?如果没有,我应该走哪条路?
编辑:原来我没有使用APP引擎,但谷歌的文档让我觉得这些都是我需要采取的步骤,这些步骤让我失去了正确的(并且更加简化了)路径。
答案 0 :(得分:1)
问题似乎是因为您未使用virtualenv
。只需按照以下说明操作即可。
source /path/to/your/virtualenv
命令激活它:https://cloud.google.com/python/setup#installing_and_using_virtualenv
vritualenv
,请按照以下链接中的说明安装所需的Google oauth库:https://developers.google.com/api-client-library/python/auth/web-app
https://google-auth.readthedocs.io/en/latest/#
使用ipython
在本地测试了上述步骤并且它正在运行。以下是相同的输出。
In [1]: from google.oauth2 import id_token
In [2]: dir(id_token)
Out[2]:
['_GOOGLE_APIS_CERTS_URL',
'_GOOGLE_OAUTH2_CERTS_URL',
'__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'_fetch_certs',
'exceptions',
'http_client',
'json',
'jwt',
'verify_firebase_token',
'verify_oauth2_token',
'verify_token']
In [3]: from google.auth.transport import requests
In [4]: dir(requests)
Out[4]:
['AuthorizedSession',
'Request',
'_LOGGER',
'_Response',
'__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'absolute_import',
'exceptions',
'functools',
'logging',
'requests',
'six',
'transport']
In [5]:
`